Mysql не использует индекс

sunyang

Новичок
Есть продуктовая табличка со значениями:

Код:
CREATE TABLE IF NOT EXISTS `product_2` (
  `id` int(11) NOT NULL,
  `catalog_id` int(11) NOT NULL,
  `name` varchar(128) NOT NULL,
  `active` tinyint(1) NOT NULL DEFAULT '1',
  PRIMARY KEY (`id`),
  KEY `catalog_id` (`catalog_id`),
  KEY `active` (`active`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Дамп данных таблицы `product_2`
--

INSERT INTO `product_2` (`id`, `catalog_id`, `name`, `active`) VALUES
(1, 12, 'prod 1', 1),
(2, 12, 'prod 2', 1),
(3, 12, 'prod 3', 1),
(4, 12, 'prod 4', 1),
(5, 12, 'prod 5', 0),
(6, 12, 'prod 6', 0),
(7, 12, 'prod 7', 1),
(8, 13, 'prod 8', 1),
(9, 13, 'prod 9', 1),
(10, 13, 'prod 10', 1);
Делаю элементарный запрос:

Код:
EXPLAIN SELECT * FROM `product_2` p WHERE p.catalog_id = 12
Выводит:

select_type: SIMPLE
table: product_2
type: ALL
possible_keys: catalog_id
key: NULL
key_len: NULL
ref: NULL
rows: 10
Extra: Using where

Ключ catalog_id не использует, пробегает по всем записям. Почему мускул не хочет использовать индекс?

Работает только так:

Код:
SELECT * FROM `product_2` p FORCE INDEX (catalog_id) WHERE p.catalog_id = 12
Не пойму, где я туплю. Буду признателен за совет.
 

sunyang

Новичок
Разобрался. Слишком мало записей. Добавил еще 50, скуль стал юзать индекс.
 
Сверху