KXIN
发布于 2025-07-30 / 0 阅读
0
0

【重点】MySQL索引的“使用”注意事项?

  1. 应尽量避免在WHERE子句中使用!=<>操作符,否则引擎将放弃使用索引而进行全表扫描。优化器将无法通过索引来确认将要命中的行数,因此需要搜索该表所有行。

注意,column IS NULL也是不可以使用索引的。

  1. 应尽量避免在WHERE子句中使用OR来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,如:SELECT id FORM t WHERE num = 10 OR num = 20

  2. 应尽量避免在WHERE子句中对字段进行表达式操作,这将导致引擎放弃使用索引而进行全表扫描。

  3. 应尽量避免在WHERE子句中对字段进行函数操作,这将导致引擎放弃使用索引进行全表扫描。

  4. 不要在WHERE子句中的=边进行函数、算数运算或者其他表达式运算,否则系统将可能无法正确使用索引。

  5. 复合索引遵循前缀原则。

  6. 如果MySQL评估使用索引比全表扫描更慢,会放弃使用索引。如果此时想要索引,可以在语句中添加强制索引

  7. 列类型是字符串类型,查询时一定要给值加引号,否则索引失效。

  8. LIKE查询,%不能在前,因为无法使用索引。如果需要模糊匹配,可以使用全文索引。


评论