XF 2.2 Уменьшить размер БД / xf_search_index

Версия XenForo
2.2

tronheym

Проверенные
Сообщения
164
Решения
1
Реакции
9
Баллы
5,520
Приветствую.
Глянул на БД сайта и ее размер мне не понравился. Самый большой размер у таблицы xf_search_index

1689183443794.png

Собственно, а какой от нее толк? Я ее очистил и поиск по форуму норм работает. И 155 Мб освободилось..
 
Собственно, а какой от нее толк? Я ее очистил и поиск по форуму норм работает.
Слабо верится что после этого поиск будет нормально работать, так внутренний поиск тем и сообщений идет именно по этой таблице.
Вот то, что она корявая, не оптимизированная, тут я согласен, и ранее даже писал как её можно сократить порядка 30% без ущерба для поиска.
 
Я ее очистил и поиск по форуму норм работает.
Все подряд таблицы тоже почисти, че место занимают


Собственно, а какой от нее толк?
В ней находится индекс поиска, который, внезапно, сильно улучшает и ускоряет поиск
Вместо него можно использовать XenForo Enhanced Search

Но судя по тому, что для вас 155 МБ это много, он не подойдет
 
Имхо, там не верная логика занесения и выборки из этой таблицы.
По сути таблица для поиска дублирует таблицу сообщений, но для быстрой выборки сделана типом MyIsam, а не InnoDB.

В эту таблицу заносится всё сообщение, вместе с ВВ-кодами, не использующимися символами, короткими словами, и тд.
И очищается от всего этого ненужного только после выборки.
Более разумно было-бы заносить в неё уже очищенное сообщение.
Так делают во многих движках. Не понятно зачем разрабы XF сделали наоборот.

Даже я, не программист, но написал коротенький PHP скрипт для двух форумов.
Прогнал таблицу скриптом, который просто последовательно перебирает записи в таблице и вычищает из таблицы всё ненужное.
Буквально 10 строк кода, и несколько регулярок с которыми справится любой.
В итоге, на одном форуме сократил эту таблицу без ущерба для поиска, с 6Gb до 4Gb, на втором не помню, но тоже порядка 30%.

На какую-то уникальность или ноухау не претендую.
Просто как вариант сокращения таблицы без изменений в штатном движке.
 
Но судя по тому, что для вас 155 МБ это много, он не подойдет
когда таблица с индексом поиска занимает в 2 раза больше места чем таблица post - это ненормально..
В ней находится индекс поиска, который, внезапно, сильно улучшает и ускоряет поиск
Вместо него можно использовать XenForo Enhanced Search
XenForo Enhanced Search по чему ищет? По search_index или по post или свою таблицу создает?

Как можно реализовать поиск в XF через поиск в post и thread, а не в search_index? Есть такие решения?
 
Последнее редактирование:
когда таблица с индексом поиска занимает в 2 раза больше места чем таблица post - это ненормально..
В поиске лежат не только посты. Сообщения профиля например тоже индексируются

По search_index или по post или свою таблицу создает?
В базе эластика смотрит.
Т.е всю задачу по индексации, поиску и смежному делегирует на Elasticsearch
 
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу