在 MySQL 中创建索引时,有哪些关键注意事项?
考察说明
考察对 MySQL 索引设计原则的理解,包括索引选择、使用限制和优化方向。
回答思路
- 【回答框架 1】创建索引需遵循最左前缀原则,复合索引需将最常用列放在最前面,且应避免在索引列上进行函数运算或隐式类型转换,否则会导致索引失效。
- 【回答框架 2】选择区分度高且查询频繁的列作为索引,避免对低区分度列(如性别)建立索引;同时应限制索引数量,过多索引会降低写入性能和占用额外存储空间。
- 【回答框架 3】长字符串列应使用前缀索引来节省空间,但需注意前缀长度的选择以避免过多重复;对排序和分组操作频繁的列建立索引可提升性能,但需权衡写入开销。
- 【回答框架 4】需考虑索引覆盖,即索引包含查询所需所有列,可避免回表;对于大表,可考虑使用索引提示或优化器提示,但应基于实际执行计划调整。
- 【关键点 1】最左前缀原则是复合索引生效的核心。
- 【关键点 2】高区分度列更适合建立索引。
- 【关键点 3】索引数量过多会拖慢写入,增加存储成本。
- 【关键点 4】前缀索引能节省空间,但需谨慎选择长度。
- 【关键点 5】利用覆盖索引减少回表I/O。
- 【易错点 1】误区:索引越多越好,实际会降低写入性能。
- 【易错点 2】误区:在索引列上使用函数或隐式转换不会影响索引使用,实际会导致索引失效。
- 【易错点 3】误区:忽略复合索引的列顺序,导致索引无法被有效利用。