Mysql 简单选择*从4 GB表限制1需要0.5秒以上。有什么不对劲吗?

Mysql 简单选择*从4 GB表限制1需要0.5秒以上。有什么不对劲吗?,mysql,configuration,database-administration,query-performance,Mysql,Configuration,Database Administration,Query Performance,一个简单的SELECT*FROM[4 GB table]LIMIT 1需要0.5秒以上的时间来执行。有什么不对劲吗 整个数据库包含70GB的数据,4个表的大小为4~5GB;其余不超过1 GB。二十张桌子是Innodb,一张是MyISAM。服务器正在m3.2xlarge实例上运行 更新: 我只是注意到,不仅在4GB表中,而且在所有表中都会发生这种情况。事实上,我尝试从一行一列的最小表中进行查询SELECT*from minimable_table查询时间约为0.4s。这可能是配置问题吗?我最近没有

一个简单的
SELECT*FROM[4 GB table]LIMIT 1
需要0.5秒以上的时间来执行。有什么不对劲吗

整个数据库包含70GB的数据,4个表的大小为4~5GB;其余不超过1 GB。二十张桌子是Innodb,一张是MyISAM。服务器正在m3.2xlarge实例上运行

更新:
我只是注意到,不仅在4GB表中,而且在所有表中都会发生这种情况。事实上,我尝试从一行一列的最小表中进行查询
SELECT*from minimable_table
查询时间约为0.4s。这可能是配置问题吗?我最近没有更改配置。

怎么了?米萨姆。示例:在3个不同的线程中,假设您有

SELECT ... FROM this_table ...; -- running more than 0.5 sec
INSERT INTO this_table ...;
SELECT * FROM this_table LIMIT 1;  -- this query
Q1开始运行,获取此_表上的读取锁。
Q2启动,但希望此_表上有一个独占锁,因此它挂起。 Q3启动,但被卡在独占锁后面,因此挂起

最后,Q1结束,让Q2结束,这让Q3结束

这是MyISAM的一个缺点


如果我猜错了,请提供
SHOW CREATE TABLE
,如果可能的话,请在0.5s延迟期间提供
SHOW PROCESSLIST

一般来说,添加硬件来修复缓慢的查询是浪费金钱。良好的查询性能来自于精心选择和使用的索引。请阅读本文并注意有关查询性能的部分。那么您的问题是提供我们帮助您所需的信息。@DragandDrop该链接是PostgreSQL而不是MySQL。.使用LIMIT 1而不使用ORDER BY是毫无意义的。因为在返回记录时没有失效的返回订单。不,我没这么说。。使用配置文件查看造成滞后的原因。。但这张桌子不是MyISAM。如何在0.5秒延迟期间
显示进程列表
?当我启动
SHOW PROCESSLIST
时,查询应该已经完成。同时提供
EXPLAIN SELECT…
我认为该解释不是来自
SELECT*from tbl LIMIT 1