如何提高选择操作的执行速度

时间:2012-04-05 17:56:05

标签: mysql sql

create table foo (id int(11) auto_increment, value varchar(255))

该表包含大约10,00,000行和选择操作,例如select id,来自foo的值大约需要2-3秒才能执行,如何提高此处的速度

4 个答案:

答案 0 :(得分:2)

选择id,来自foo的值将返回整个表。您提到的2-3秒可能包括转移结果所需的时间。这通常比数据库服务器执行实际查询所需的时间长得多。

答案 1 :(得分:1)

如果没有WHERE子句(就像你发布的查询一样),并且你选择了一百万行,那么很有可能而不是查询需要花费2-3秒才能执行它实际上需要花费时间来发送整个网络的数据。

您的应用程序实际上可以同时使用一百万个数据库记录吗?如果您向用户显示该数据,那么您可能会对其进行分页,因此请更改您的查询以选择更易于管理的数据块。

SELECT id, value 
FROM foo
LIMIT $offset, $pgsize -- these two values will come from your application

如果你真的,真的需要一次所有这些行,那么我建议你缓存它们。

答案 2 :(得分:0)

为where子句中使用的字段添加索引。

答案 3 :(得分:0)

CREATE INDEX id_index ON foo (id) USING BTREE;

您可以在http://dev.mysql.com/doc/refman/5.0/en/create-index.html

查看更多信息