2011-07-07 11 views
2

私は単純なインデックスを持つmySQLと単純なクエリで非常に奇妙な問題があります。また、インデックスの名前LINK_IDがあり、あなたが見ることができるよう単純なmySQLクエリではインデックスを使用していません

SELECT * FROM `counter_links` WHERE `link_id`=1544; 

:私はこのクエリを使用しようとしています

mysql> show indexes from counter_links; 
+---------------+------------+-------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+----------+---------------+ 
| Table   | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | 
+---------------+------------+-------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+----------+---------------+ 
| counter_links |   1 | link_id  |   1 | link_id  | A   |  NULL |  NULL | NULL |  | BTREE  | disabled |    | 
+---------------+------------+-------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+----------+---------------+ 
1 row in set (0.12 sec) 

しかし、EXPLAIN何を見返さ:

mysql> explain SELECT * FROM `counter_links` WHERE `link_id`=1544; 
+----+-------------+---------------+------+---------------+------+---------+------+----------+-------------+ 
| id | select_type | table   | type | possible_keys | key | key_len | ref | rows  | Extra  | 
+----+-------------+---------------+------+---------------+------+---------+------+----------+-------------+ 
| 1 | SIMPLE  | counter_links | ALL | NULL   | NULL | NULL | NULL | 22103687 | Using where | 
+----+-------------+---------------+------+---------------+------+---------+------+----------+-------------+ 
1 row in set (0.03 sec) 

なぜMySQLのドン」そこにインデックスを使用する?テーブルの小さなバージョンでも同じことがうまくいくことがわかりますが、どこに問題があるのか​​わかりません。あなたがやる?

低IDがインデックスで動作することがあるため、見た目が変わっています。

コメントありがとうございます!

乾杯!

ヤクブ

+0

あなたは '多分counter_links''のTABLE'をCREATE示しすることはできます動作する可能性があり? –

答えて

3

番目eindexのコメント欄には、インデックスがなぜわからない、disabledであると述べています。

ALTER TABLE ... ENABLE KEYSは

+0

Aaaahaaaa、あなたは正しいです!ありがとう、私はそれを試してみるつもりです。 –

関連する問題