今天生产数据库预警了,马上拉一下慢日志,定位了慢SQL,发出来大家一起学习
sql
select a.fid,a.fname,a.fremark from a where a.fid = -1
fid是表的主键,按主键查询怎么会出现扫全表的情况了,原因是fid是字符串类型,传值-1 mysql会使用函数将-1转为字符串在进行比较,无法使用到表的索引,改成'-1' 后生产打包,这条慢SQL消失了,问题解决