MYSQL索引设计和创建原则
- 对于经常查询的字段,建议创建索引
- 索引不是越多越好,一个表如果有大量的索引,不仅占用磁盘空间,而且对于写操作会造成性能底下
- 避免对经常更新的表进行创建过多的索引,因为当表中有数据更改时,索引也会进行调整和更新,十分消耗系统资源
- 数量小的表建议不要创建索引,数据量小时索引不仅起不到明显的优化效果,对于索引结构的维护反而消耗资源
- 不要在区分度地的字段建立索引,比如性别字段,只有男女,建立索引完全起不到优化效果
- 定义有外键的数据列一定要建立索引,因为如果外键列上缺少索引会带来两个问题:
- 限制并发性:如果子表外键没有创建索引,那么在子表进行DML操作时,将会锁住整个父表
- 影响性能:首先如果外键上缺少索引,从主表关联子表的查询就只能对子表进行全表扫描的查询