Разделение инфоблоков на партиции

Возможный путь увеличения скорости - разделение таблицы инфоблоков на партиции:

ALTER TABLE `b_iblock_element` DROP PRIMARY KEY, ADD CONSTRAINT id_iblock_id PRIMARY KEY (ID,IBLOCK_ID)
PARTITION BY RANGE COLUMNS(IBLOCK_ID) (
PARTITION p0 VALUES LESS THAN (45),
PARTITION p1 VALUES LESS THAN (46),
PARTITION p2 VALUES LESS THAN (52),
PARTITION p3 VALUES LESS THAN MAXVALUE
); --5 сек
 
EXPLAIN PARTITIONS SELECT * FROM b_iblock_element WHERE IBLOCK_ID = 45;

Корзина:

ALTER TABLE `b_sale_basket` DROP PRIMARY KEY, ADD CONSTRAINT idx_user_id PRIMARY KEY (ID,FUSER_ID) PARTITION BY KEY(FUSER_ID) PARTITIONS 10; -- 1 млн, 1 мин
Печать/экспорт