索引是帮助MySQL高效获取数据的一种数据结构
索引优势:提高查询排序的速度
索引劣势:降低更新的速度(因为要维护索引),索引要占一定空间
1,什么字段适合建立索引
1,主键自动建立索引
2,外键字段
3,频繁作为查询条件的字段
4,频繁作为排序条件的字段
5,查询中统计或者分组的字段
2,什么字段不适合建立索引
1,where中用不到的字段
2,经常要增删改的字段
3,表记录数太少
4,过滤性不好的字段(比如说性别就属于当中),手机号,身份证号属于过滤性好的字段(通过这种字段查询的结果很少,很精确)
优化1 查询时 列名 比 *好
优化2 where and条件 是从右向左判断,所以最好是把假 的判断放在右边
- or 最好把真的放在右边
优化3 在having和where 选择哪个好?
- 尽量使用where,having是先分组,再过滤,而where是先过滤再分组,where应该写在group by前面
- 记录数越多,效果越明显
优化4 多表查询好于子查询
- where 后面不能使用多行函数,而having可以使用多行函数
优化5 尽量不要使用集合运算,效率低(INTERSECT)
优化6 选择正确的存储引擎(MyIASM引擎适合读 InnoDB引擎适合并发度较高的场景)