Автоматическое заполнение поля SEARCHABLE_CONTENT приводило к разрастанию b_iblock_element у меня эта таблица доросла до ~2гиг.
Для инфоблоков по которым не производится поиск средствами битрикс, содержимое это поля не нужно.
Судя по коду /bitrix/modules/iblock/classes/general/iblockelement.php, в данное поле попадает NAME+PREVIEW_TEXT+DETAIL_TEXT в верхнем регистре, и шевеление галочкой "Индексировать элементы для модуля поиска" в настройках инфоблока ни как не влияет на заполняемость данного поля.
Дабы побороть
CREATE TRIGGER `BEFORE_INSERT_b_iblock_element` BEFORE INS ERT ON `b_iblock_element` FOR EACH ROW BEGIN
IF ( NEW.IBLOCK_ID IN ( 4, 6, 7, 8, 15) ) THEN
SET NEW.SEARCHABLE_CONTENT=NULL;
END IF;
END
CREATE TRIGGER `BEFORE_UPDATE_b_iblock_element` BEFORE UPD ATE ON `b_iblock_element`
FOR EACH ROW BEGIN
IF ( NEW.IBLOCK_ID IN ( 4, 6, 7, 8, 15) ) THEN
SE T NEW.SEARCHABLE_CONTENT=NULL;
END IF;
END
(4, 6, 7, 8, 15) ID ифоблоков для которых нет необходимости запоминать SEARCHABLE_CONTENT
для очистки накопившегося:
UPDATE `b_iblock_element` SE T SEARCHABLE_CONTENT = NULL WHERE IBLOCK_ID IN ( 4, 6, 7, 8, 15 )
не и на последок
OPTIMIZE TABLE `b_iblock_element`
на выходе получаем
Используемое пространство
Данные | 709 | МБ |
---|---|---|
Индекс | 258.1 | МБ |
Всего | 0.9 | ГБ |
было 2г стало 0.9г профит