[英]mysql index not optimizing query
我有mysql MyISAM表,我正在select id from mytable limit 1;
做一个简单的select id from mytable limit 1;
。 这只会冻结系统。
我试图explain select id from mytable limit 1;
。 再次冻结了我的系统。 表的人口统计数据:50k记录,10 mbs大小,2个索引(主键自动递增),8列。
我不知道为什么explain
语句失败,因为它应该显示查询计划,而没有别的。 表的大小既不是巨大的,也不是记录的数目,那么为什么mysql运行这么慢? 相反,我在这里想念什么?
这是由于mytable处于等待状态。 eggyal给了我使用show processlist
的线索。 这显示了:
+-----+---------+-----------------+----------------+---------+------+---------------------------------+----------------------------------------------------+
| Id | User | Host | db | Command | Time | State | Info |
+-----+---------+-----------------+----------------+---------+------+---------------------------------+----------------------------------------------------+
| 349 | root | localhost:56612 | mydb | Query | 3582 | Waiting for table metadata lock | ALTER TABLE `mytable` ADD INDEX(`fk_to_02`) |
我植入了kill 349
来终止该等待链,现在说明语句可以按预期工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.