我正在使用MySql中的表,该表具有称为“ serial”的int索引列.该表大约有200万行.
如果我以这种方式在此列中应用选择语句:
SELECT serial FROM Table WHERE Serial=12345
这将返回<附近的数据. 1秒. 但是,如果我在同一张表中使用SELECT *查询,则此查询大约需要78秒… 我知道将索引应用于表中的所有列都没有用,如果需要从特定序列中获取所有列,如何优化/最小化查询响应时间?
SELECT * FROM Table WHERE serial= 12345
来自EXPLAIN的结果:
SELECT系列:
1 SIMPLE tableName index idx_tablename_serial 5 6686620 Using index
选择 * :
1 SIMPLE agsensepivotreadings ALL (null values) 6686620
请,任何建议或指南将不胜感激.
解决方法:
您的问题有部分答案.
https://*.com/a/3211164/2957840
而且,也许您应该考虑对表进行分区:
https://dev.mysql.com/doc/refman/5.7/en/partitioning.html