Я использую таблицу продуктов Mysql с внешним ключом category_id в таблице категорий
определено ограничение внешнего ключа (механизм Innodb).
Я заметил, что когда я запускаю EXPLAIN SELECT * из продуктов, где category_id = 1;
он использует внешний ключ, поэтому я вижу type = Range and Key: my_foreign_key
Но когда я запускаю EXPLAIN SELECT * из продуктов, где category_id IN (1,10);
используется полное сканирование таблицы: type = ALL, ключ: NULL !!!
Как ни странно, когда я делаю EXPLAIN SELECT * из продуктов, где category_id IN (1,2); Используются диапазон типов и ключ: My_foreign_key!
Так что я думаю, что есть проблема, когда category_id использует значения, которые не являются смежными.
Есть идеи, почему?
Спасибо