0
点赞
收藏
分享

微信扫一扫

MySQL创建索引有哪些注意点?

索引虽然是sql性能优化的利器,但是索引的维护也是需要成本的,所以创建索引,也要注意:

1. 索引应该建在查询应用频繁的字段在用于 where 判断、 order 排序和 join 的(on)字段上创建索引。

2. 索引的个数应该适量

索引需要占用空间;更新时候也需要维护。

3. 区分度低的字段,例如性别,不要建索引。

离散度太低的字段,扫描的行数降低的有限。

4. 频繁更新的值,不要作为主键或者索引

维护索引文件需要成本;还会导致页分裂,IO次数增多。

5. 组合索引把散列性高(区分度高)的值放在前面

为了满足最左前缀匹配原则

6. 创建组合索引,而不是修改单列索引。

组合索引代替多个单列索引(对于单列索引,MySQL基本只能使用一个索引,所以经常使用多个条件查询时更适合使用组合索引)

7. 过长的字段,使用前缀索引。

当字段值比较长的时候,建立索引会消耗很多的空间,搜索起来也会很慢。我们可以通过截取字段的前面一部分内容建立索引,这个就叫前缀索引。

8. 不建议用无序的值(例如身份证、UUID )作为索引

当主键具有不确定性,会造成叶子节点频繁分裂,出现磁盘存储的碎片化。

举报

相关推荐

0 条评论