mysql的sql语句优化查询
SELECT MAX(id) FROM gps WHERE cardId IN () GROUP BY cardId ;
这是一张近千万条数据的表,根据cardId查询然后分组获取最大的主键 id,查询时间需要十几秒,效率特别的低,有什么优化SQL语句的方法吗?
回答
另辟蹊径:新建一个表,这个表两个字段:MaxId和CardId。当gps执行insert或delete操作时,更新一下这个表。这样你就不用去gps表里查数据了,直接来这个表里查。
SELECT MAX(id) FROM gps WHERE cardId IN () GROUP BY cardId ;
这是一张近千万条数据的表,根据cardId查询然后分组获取最大的主键 id,查询时间需要十几秒,效率特别的低,有什么优化SQL语句的方法吗?
另辟蹊径:新建一个表,这个表两个字段:MaxId和CardId。当gps执行insert或delete操作时,更新一下这个表。这样你就不用去gps表里查数据了,直接来这个表里查。