Производится много выборок из большой таблицы InnoDB (HighLoad инфоблок) ~700 000 записей (251 Мб)
Такой код:
Выполняется около 3 сек. (при повторной выборке 0,0002с - очевидно, что это уже кеш)
Так вот, можно ли как-то сократить время выборки, учитывая, что в основном выборка производится именно по полям UF_CATALOG_NUMBER и UF_CAT_NUM_CLR?
Есть чувство, что установка ключей могла бы помочь ускорить выборку, но не очень в этом понимаю, поэтому прошу совета
P.S. Изменение полей выборки select на время выполнения запроса какого-то явного влияния не имеет.
Вот структура таблицы, выделил основные поля.

Такой код:
| Код |
|---|
$entity_data_class::getList(array(
"select" => Array("*"),
"order" => Array("UF_PRICE" => "ASC"),
"filter" => Array(
'LOGIC' => 'OR',
'=UF_CATALOG_NUMBER' => $code,
'=UF_CAT_NUM_CLR' => $code
)
));
// Или такой
SELECT * FROM `b_repair_catalog` WHERE `UF_CATALOG_NUMBER` = '08-01750' |
Так вот, можно ли как-то сократить время выборки, учитывая, что в основном выборка производится именно по полям UF_CATALOG_NUMBER и UF_CAT_NUM_CLR?
Есть чувство, что установка ключей могла бы помочь ускорить выборку, но не очень в этом понимаю, поэтому прошу совета
P.S. Изменение полей выборки select на время выполнения запроса какого-то явного влияния не имеет.
Вот структура таблицы, выделил основные поля.
postoev.ru/blog/