一个简单的数据库:
CREATE TABLE data (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
code VARCHAR(50),
value VARCHAR(10),
);
目前有大约2百万行。
查询如下:
SELECT value FROM data WHERE `code`='12345';
执行10-12秒。
提高简单select
查询效果的最佳方法是什么?
答案 0 :(得分:5)
在code
列上创建索引:
ALTER TABLE data ADD INDEX (code)
答案 1 :(得分:2)
为代码添加索引。此外,代码总是数字(使其类型为int)和/或它是唯一的(使其成为唯一或主键)?
答案 2 :(得分:1)
在某些情况下,您可能会发现在code
列上添加索引是不够的,所以如果这对您不起作用,则需要为{{1}添加(单个)索引}和code
列。
答案 3 :(得分:1)
您可以使用EXPLAIN SELECT ...
向MySQL询问有关如何执行查询的信息。这会告诉你它需要检查每一行。改进此问题的方法是在code
子句中使用WHERE
列添加索引。
EXPLAIN
http://dev.mysql.com/doc/refman/5.0/en/explain-output.html
CREATE INDEX
http://dev.mysql.com/doc/refman/5.0/en/create-index.html