这个问题可以涉及到 MySQL 的很多核心知识,其涵盖知识面不亚于“输入URL回车之后,究竟发生了什么,看看你能说出多少了。”
一 大多数情况是正常的,只是偶尔会出现很慢的情况。
一条 SQL 大多数情况正常,偶尔才能出现很慢的情况,针对这种情况,我觉得这条SQL语句的书写本身是没什么问题的,而是其他原因导致的,那会是什么原因呢?
- 数据库在刷新脏页,例如 redo log 写满了需要同步到磁盘。
- 执行的时候,遇到锁,如表锁、行锁。
二 在数据量不变的情况下,这条SQL语句一直以来都执行的很慢。
- 没有用上索引:例如该字段没有索引;由于对字段进行运算、函数操作导致无法用索引。
- 数据库选错了索引。
详见: Hollis大佬微信公众号