私はこのクエリを持っています:
SELECT
COUNT(*) AS `numrows`
FROM (`tbl_A`)
JOIN `tbl_B` ON `tbl_A`.`B_id` = `tbl_B`.`id`
WHERE
`tbl_B`.`boolean_value` <> 1;
に3つのインデックスを追加しましたtbl_A
。B_id
、tbl_B
。id
およびtbl_B
。boolean_value
ただし、mysqlは(インデックスログを使用しないクエリでは)インデックスを使用しないと言っており、テーブル全体を調べて結果を取得します。
このクエリを最適化するために何をすべきかを知る必要があります。
編集:
出力の説明:
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE tbl_B ALL PRIMARY,boolean_value NULL NULL NULL 5049 Using where
1 SIMPLE tbl_A ref B_id B_id 9 tbl_B.id 9 Using where; Using index