4,000 万レコードのテーブルがあります。
私がリクエストをするとき:
SELECT COUNT(*)
FROM shares
WHERE id > 36725307
AND our_result = 'N'
インデックス オンour_result
が使用されます。
別の値を使用するステートメントでは、次のようになります。
SELECT COUNT(*)
FROM shares
WHERE id > 36725307
AND our_result = 'Y'
インデックスは使用されません。
my.cnf
key_buffer_size = 900M
join_buffer_size = 512M
query_cache_size = 128M
thread_cache_size = 8
query_cache_limit = 64M
tmp_table_size = 512M
max_heap_table_size = 128M
key_buffer_size = 256M
key_cache_division_limit= 70
max_heap_table_size = 256M
sort_buffer_size = 128M
max_tmp_tables = 64
table_cache = 2048
read_rnd_buffer_size = 128M
フィールドを持つレコードour_works = Y
: 3,700 万フィールドを
持つレコードour_works = N
: 200 万
2 番目のクエリでインデックスが使用されないのはなぜですか?