SELECT中的MySQL性能问题

时间:2012-07-04 22:57:29

标签: mysql performance

一个简单的数据库:

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查询效果的最佳方法是什么?

4 个答案:

答案 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