1

我的一个查询有时很慢,我遇到了麻烦。

SELECT * FROM table WHERE primary_key IN (1,2,...)

对于大约 100 个条目,有时甚至 5 秒非常慢。显然我们在主键上有索引。有没有办法优化这个查询。该表略大,大约有 1 亿个条目。

4

2 回答 2

0

对于一个 100M 的记录表,您实际上无法在查询优化方面做太多事情,因为它很简单。您可以研究的是 MySQL 配置调整。

如果您的表是 InnoDB/XtraDB(如果不是我建议使用这些引擎),您可能需要查看innodb_buffer_pool_size变量 - 使用的索引必须适合内存以实现查询的最佳性能。

于 2012-07-25T12:32:07.580 回答
0

你能发布一个解释,也许有一些可疑的事情发生。

此外,如果这是一个 MyISAM 数据库表并且您有高并发 INSERT,则该表将在插入期间被锁定,因此您的 SELECT 可能会在此期间阻塞。

于 2012-07-25T11:59:53.383 回答