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