У меня есть таблица:Перегородки от нулевых значений с MySQL
CREATE TABLE `NewTable` (
`IBLOCK_ELEMENT_ID` int(11) NOT NULL ,
`PROPERTY_1836` int(11) NULL DEFAULT NULL ,
`DESCRIPTION_1836` varchar(255) CHARACTER SET cp1251 COLLATE cp1251_general_ci NULL DEFAULT NULL ,
`PROPERTY_1837` int(11) NULL DEFAULT 0 ,
`DESCRIPTION_1837` varchar(255) CHARACTER SET cp1251 COLLATE cp1251_general_ci NULL DEFAULT NULL ,
`PROPERTY_1838` decimal(18,4) NULL DEFAULT NULL ,
`DESCRIPTION_1838` varchar(255) CHARACTER SET cp1251 COLLATE cp1251_general_ci NULL DEFAULT NULL ,
`PROPERTY_3139` int(11) NULL DEFAULT 0 ,
`DESCRIPTION_3139` varchar(255) CHARACTER SET cp1251 COLLATE cp1251_general_ci NULL DEFAULT NULL ,
`PROPERTY_3173` decimal(18,4) NULL DEFAULT NULL ,
`DESCRIPTION_3173` varchar(255) CHARACTER SET cp1251 COLLATE cp1251_general_ci NULL DEFAULT NULL ,
PRIMARY KEY (`IBLOCK_ELEMENT_ID`),
INDEX `ix_perf_b_iblock_element_pr_1` (`PROPERTY_1837`) USING BTREE ,
INDEX `ix_perf_b_iblock_element_pr_2` (`PROPERTY_1836`) USING BTREE ,
INDEX `ix_perf_b_iblock_element_pr_3` (`PROPERTY_3139`) USING BTREE
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=cp1251 COLLATE=cp1251_general_ci
ROW_FORMAT=COMPACT;
И запрос с условием:
WHERE PROPERTY_3139 IS NULL
Я не могу изменить таблицу или запрос. Но я знаю, если я разделил таблицу на 2 раздела - запросы, выбирающие только значения с нулевым значением, будут работать намного быстрее.
Какую трюк я могу использовать для этого? NULL и NOT NULL не являются диапазоном, и я не могу использовать его в качестве списка значений.
Если вы не можете изменить таблицу, как вы планируете добавлять разделы? –
Приносим извинения за неточность. Я не могу изменить структуру таблицы. Но разделение не влияет на любые изменения для запросов. –
Почему минус за вопрос? –