mysql 索引优化、使用原则及注意事项

索引优化和sql优化是不可分离的,这里就连起来一块说了
先介绍下索引建立及使用过程中初步应该需要注意的点,就像大部分文章和视频中所介绍的那样,刚开始简单的东西都是大同小异,诸如以下 点
SQL优化
1 少取字段,只取需要的

索引优化
先介绍下hash索引
1 尽量给where条件和排序的字段建立索引(考虑联合索引)
2 where条件中使用字段的顺序尽量和联合索引中的字段顺序一致(即最左前缀原则),其实不一致也可以(因为从语义上来讲都是一样的,mysql会将sql语句优化成最理想的顺序状态),但一定要使用第一个字段作为条件才能使用到该索引,否则无法使用
3 索引除了能用于where条件搜索,还可以用于order by排序和group by 分组
4 in可以用到索引,但数量不要太多(未仔细考证多少个最合适)
5 关于覆盖索引(回行)真的有很多话要说
5.1
聚簇索引 innodb
次级索引指向对主键的引用
非聚簇索引 myisam

稍微涉及一点表的优化
1 定长和变长字段分离(因为定长字段可以查询的很快)
2 关于表中应该存放那些字段的问题,常用的和不常用的字段要尽量分开
3 适当添加冗余以提高速度
4 列类型的选择
4.1 优先级:整型>date/timestamp>enum>varchar>blob/text
4.2 够用就行,不要慷慨

猜你喜欢

转载自blog.csdn.net/zhuxineli/article/details/77897655