一条SQL语句执行得很慢,要分两种情况:

1.大多数情况是正常,偶尔很慢

  • 数据库在处理数据忙时候,更新或新增数据都会暂时记录到redo log日志,等空闲时把数据同步到磁盘。假设数据库一直很忙,更新又频繁,redo log被写满,就不得不暂停其它操作把数据同步到磁盘,就有可能导致我们的SQL语句执行的很慢
  • 执行时遇到表锁行锁,别人操作数据库用到表或者行数据加锁了,只能慢慢等待别人释放锁

2.这条SQL语句一直很慢

  • 没有用索引,例如该字段没有用上索引
  • 由于对字段运算,函数操作没有用上索引
  • 数据库采样预测索引基础失误,导致系统没有走索引,而是走了全表扫描
04-20 16:25