数据库的索引分为两种一种是聚集索引一种是非聚集索引这两种索引有着不同的检索方式
聚集索引是一种会改变查询方式的索引方式(在创建表的时候创建自增主键SQL会自动创建为剧集主键)
使用聚集索引查询实在SQL中比较快的一种查询方式
非聚集索引
1,不影响数据的物理排序,但是重复存储一个数据和位置
2,找数据:先找索引--快速定位--拿到数据
3,查找快,但是有维护索引的成本,不是越多越好
4,非聚集索引,可以多个,每个索引也可以多个字段
5,适合经常查询的字段,名称/账号
6,非聚集索引不能运算,不能like‘% %‘,索引条件在前
建立索引的原则/建议
1,主键是必须简历索引(推荐数值主键,性能最高)
2,外键里也要索引
3,经常查询的建立索引
4,经常在Where里面
5, Order by / group by /distinct
6,聚合运算/where条件时,先索引字段
不推荐的缘由
1,基本不怎么查询
2,重复值比较多的不要索引(sex/state)
3,text/image 不要索引
4,索引不要太多了
执行计划的5种 执行计划
Estimated Number of Rows 受影响行数
|
|
Estimated Row Size 受影响的字节数 | |
Estimated Data Size 影响的数据大小 |
常规的SQL优化建议:
对列的计算要避免,任何形式都要避免
in查询 or查询,索引会失效,可能是拆分
in 换exists
not in 不要用,不走索引
is null和is not null 都不走索引
<> 也不走索引 可以拆分成> 和<
join时,链接越少性能越高 左链接,以左边的结果为准 右链接反过来, 连接字段要求带索引
原文:https://www.cnblogs.com/YZM97/p/12659709.html