0

一个简单的数据库:

CREATE TABLE data (
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  code VARCHAR(50),
  value VARCHAR(10),
);

目前有大约 200 万行。

查询如:

SELECT value FROM data WHERE `code`='12345';

执行 10-12 秒。

提高简单select查询性能的最佳方法是什么?

4

4 回答 4

5

在列上创建索引code

ALTER TABLE data ADD INDEX (code)
于 2012-07-04T22:58:34.137 回答
2

为代码添加索引。此外,代码是否总是数字(使其类型为 int)和/或它是否唯一(使其唯一或主键)?

于 2012-07-04T23:01:19.947 回答
1

在某些情况下,您可能会发现在code列上添加索引是不够的,因此如果这对您不起作用,您需要为 thecodevalue列添加(单个)索引。

于 2012-07-04T23:28:05.223 回答
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

于 2012-07-05T00:15:37.553 回答