Masalah lain yang mungkin Anda temui adalah ketidakcocokan tipe data. Misalnya, jika kolom Anda adalah tipe data string (CHAR, misalnya), dan kueri Anda tidak mengutip angka, maka MySQL tidak akan menggunakan indeks.
SELECT * FROM tbl WHERE col = 12345; # No index
SELECT * FROM tbl WHERE col = '12345'; # Index
Sumber:Baru saja mengatasi masalah yang sama hari ini, dan mempelajari cara yang sulit di MySQL 5.1. :)
Sunting:Informasi tambahan untuk memverifikasi ini:
mysql> desc das_table \G
*************************** 1. row ***************************
Field: das_column
Type: varchar(32)
Null: NO
Key: PRI
Default:
Extra:
*************************** 2. row ***************************
[SNIP!]
mysql> explain select * from das_table where das_column = 189017 \G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: das_column
type: ALL
possible_keys: PRIMARY
key: NULL
key_len: NULL
ref: NULL
rows: 874282
Extra: Using where
1 row in set (0.00 sec)
mysql> explain select * from das_table where das_column = '189017' \G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: das_column
type: const
possible_keys: PRIMARY
key: PRIMARY
key_len: 34
ref: const
rows: 1
Extra:
1 row in set (0.00 sec)