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

を使用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 に答える
1

場合によっては、code列にインデックスを追加するだけでは不十分な場合があります。それがうまくいかない場合は、codevalue列の両方に (単一の) インデックスを追加する必要があります。

于 2012-07-04T23:28:05.223 に答える