目录
1、SQL优化方案
基础sql优化:
·使用sql尽量不要使用select *,使用具体字段
·where子句的or条件可换成两个sql的union all连接
·在创建表时尽量使用varchar
·尽量使用数值代替字符串
·查询避免返回大量数据
·使用explain分析你的sql执行计划
·索引不应该太多,一般5个以内
·索引不适合建在有大量重复数据的字段上
·where表达式操作、内置函数、!=或<>、is null或 is not null可能使索引失效
·去重distince过滤字段要少
高级sql优化:
·批量插入提升性能
·分批次的删除数据提升性能
·伪删除设计,添加删除标识
·提高group by的效率,先过滤在分组
·不要超过5个以上的表连接
·优先使用内连接
·使用IN子查询优化
·尽量使用union all替代union
2、sql的索引区分
按数据结构分类:B+tree索引、Hash索引、Full-text索引
物理存储分类:聚簇索引、二级索引(辅助索引)
字段特性分类:主键索引、普通索引、前缀索引
字段个数分类:单例索引、联合索引(复合索引、组合索引)
3、什么是分表
水平拆分:以字段为依据,将数据拆分到不同表中,每个表结构都一样
垂直拆分:以字段为依据来拆分表,将字段拆分到不同表中,每个表的结构都不同
4、什么样的情况下使用索引
在where和order by中经常出现的字段就创建索引(排序字段创建索引)
当数据的数量达到某一个阈值