Balancer
Guest
Тормоза (дикие) с FULLTEXT в MySQL 4.1.1alpha
Вот, возникла такая проблема, и мучает уже с месяц.
Есть популярный сайт с форумом.
Форум на iBF, в MySQL.
Сайт с недавних пор тоже переезжает на MySQL.
В виду того, что базовая кодировка всюду UTF-8, пришлось пересесть на версию MySQL 4.1.1alpha
После того, как число записей в таблице сообщений на форуме перевалило за 350тыс (~480Мб), начались дикие тормоза при поиске. Было решено переключиться на FULLTEXT поиск и вот тут-то случилось "опаньки".
Для теста решил потренироваться на базе сайта (5000 записей, 25Мб).
FULLTEXT создаётся минут 10 (не засекал точно), прекрасно работает поиск, всё замечательно, но!
При попытке вставить что-то в таблицу, с высокой вероятностью таблица отваливается ("in use"). Лечится только по REPAIR (минут 10), после чего после очередной пары вставок по 15..20кБ опять отваливается.
С переходом к таблице на 350тыс. записей всё ещё более удручающе. По ALTER TABLE машина MySQL уходит в задумчивость. Тренировался на копии таблице - за сутки работы индекс так и не создался. Более того, изменения дат файлов в базе (на диске) происходят в течении... Тоже точно не засекал, ну, скажем, получаса ... часа. Сперва ALTER TABLE в процессах светиться, потом появляется REPAIR TABLE BY SORTING (за синтаксис не ручаюсь, пишу по памяти) и больше даты не меняются. Сутки спустя - те же уши. Процесс можно убить только ручным убийством MySQL по kill -KILL
Пытался сделать перенос построчно, копируя строки PHP-скриптом. Процесс жутко медленный, всего по нескольку записей в секунду, или даже ~1 в секунду. Дня за три работы (правда, не непрерывной) перенёс ~2/3 базы, после чего случился вышеописанный на примере малой базы глюк. Таблица отвалилась. Попытка починить её приводит к такому же подвису с "REPAIR by SORTING".
Вот, собственно, и всё. Перечитал все доки, до которых дотянулся, тряс народ на форумах mysql.ru и linux.org.ru ... Сейчас заглянул по старой памяти сюда (не был тут года три ) и увидел, что тут проблема FULLTEXT достаточно интенсивно разбиралась. Но решения, опять же, не нашёл.
Вот, пишу с надеждой, может кто-то знает решение?
А то сайт простаивает...
Нет, понятно, ещё есть решение отказываться от FULTLEXT и делать свой поиск, но это как-то... некрасиво
Вот, возникла такая проблема, и мучает уже с месяц.
Есть популярный сайт с форумом.
Форум на iBF, в MySQL.
Сайт с недавних пор тоже переезжает на MySQL.
В виду того, что базовая кодировка всюду UTF-8, пришлось пересесть на версию MySQL 4.1.1alpha
После того, как число записей в таблице сообщений на форуме перевалило за 350тыс (~480Мб), начались дикие тормоза при поиске. Было решено переключиться на FULLTEXT поиск и вот тут-то случилось "опаньки".
Для теста решил потренироваться на базе сайта (5000 записей, 25Мб).
FULLTEXT создаётся минут 10 (не засекал точно), прекрасно работает поиск, всё замечательно, но!
При попытке вставить что-то в таблицу, с высокой вероятностью таблица отваливается ("in use"). Лечится только по REPAIR (минут 10), после чего после очередной пары вставок по 15..20кБ опять отваливается.
С переходом к таблице на 350тыс. записей всё ещё более удручающе. По ALTER TABLE машина MySQL уходит в задумчивость. Тренировался на копии таблице - за сутки работы индекс так и не создался. Более того, изменения дат файлов в базе (на диске) происходят в течении... Тоже точно не засекал, ну, скажем, получаса ... часа. Сперва ALTER TABLE в процессах светиться, потом появляется REPAIR TABLE BY SORTING (за синтаксис не ручаюсь, пишу по памяти) и больше даты не меняются. Сутки спустя - те же уши. Процесс можно убить только ручным убийством MySQL по kill -KILL
Пытался сделать перенос построчно, копируя строки PHP-скриптом. Процесс жутко медленный, всего по нескольку записей в секунду, или даже ~1 в секунду. Дня за три работы (правда, не непрерывной) перенёс ~2/3 базы, после чего случился вышеописанный на примере малой базы глюк. Таблица отвалилась. Попытка починить её приводит к такому же подвису с "REPAIR by SORTING".
Вот, собственно, и всё. Перечитал все доки, до которых дотянулся, тряс народ на форумах mysql.ru и linux.org.ru ... Сейчас заглянул по старой памяти сюда (не был тут года три ) и увидел, что тут проблема FULLTEXT достаточно интенсивно разбиралась. Но решения, опять же, не нашёл.
Вот, пишу с надеждой, может кто-то знает решение?
А то сайт простаивает...
Нет, понятно, ещё есть решение отказываться от FULTLEXT и делать свой поиск, но это как-то... некрасиво