优秀的编程知识分享平台

网站首页 > 技术文章 正文

三步了解索引失效场景(索引失效的问题)

nanyue 2024-10-28 16:38:16 技术文章 13 ℃

#头条创作挑战赛#

是什么

索引根据表中的一列或若干列按照一定顺序建立的列值与记录行之间的对应关系表,可以将原来需要全表扫描的搜索降低到一次只需要判断id是否一致。在mysql中使用

show index from your_tablename;

可以查看索引列名称、位置、存储方式等等

有什么

  • 如果条件中有or,即使其中有部分条件带索引也不会使用,要想使用or,又想让索引生效,只能将or条件中的每个列都加上索引。
  • like查询是以%开头
  • 存在索引列的数据类型隐形转换,如字符串类型的需要加上引号否则失效
  • 对索引列上有数学运算或函数
  • mysql估计使用全表扫描要比使用索引快,如数据量极少的表

查看是否使用了索引可以使用explain查看type和extra信息

总结

  • 尽量不要让MySQL底层对你的比较进行转换
  • select * from information_schema.`PROCESSLIST` where command != 'Sleep'查出执行时间长的sql针对性优化

502 Bad Gateway MYSQL 索引类型、什么情况下用不上索引、什么情况下不推荐使用索引

如何查看 MySQL 表的索引信息? - 墨天轮

最近发表
标签列表