Тормоза (дикие) с FULLTEXT в MySQL 4.1.1alpha

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 ... Сейчас заглянул по старой памяти сюда (не был тут года три :D ) и увидел, что тут проблема FULLTEXT достаточно интенсивно разбиралась. Но решения, опять же, не нашёл.

Вот, пишу с надеждой, может кто-то знает решение? :)
А то сайт простаивает...

Нет, понятно, ещё есть решение отказываться от FULTLEXT и делать свой поиск, но это как-то... некрасиво :)
 

tony2001

TeaM PHPClub
Спасибо за тестирование альфа-версии.
Форма для баг-репортов находится здесь: http://bugs.mysql.com
Сделай небольшой test-case и заводи баг-репорт.
 

Balancer

Guest
К сожалению, я не настолько владею англйским, чтобы писать багрепорты :( А то бы давно уже стучал туда...

Меня сомнения гложут с другой стороны. По косвенным данным сейчас масса хостов пашут на MySQL в UTF-8. И мне не верится, что никто не использует FULLTEXT. Да и сам MySQL давно не обновлялся, а будь такой баг явным, думаю, давно бы поправили...

Совсем уже отчаянная идея - может, превью 5.0 попробовать? :) Может про него кто-нить что-то хорошее/плохое сказать?
 

tony2001

TeaM PHPClub
Balancer
>К сожалению, я не настолько владею англйским, чтобы писать багрепорты А то бы давно уже стучал туда...
тогда хотя бы дай test-case и описание на русском.
здесь есть кому протестить и завести там баг-репорт.

>Совсем уже отчаянная идея - может, превью 5.0 попробовать?
>Может про него кто-нить что-то хорошее/плохое сказать?
если ты знаешь, что делаешь - делай.
но потом не говори, что тебя не предупредили.
 

Falc

Новичок
Balancer
Посмотри на кол-во багов исправленых в 4.1.2 и поймешь что 4.1.1 далеко не стабильна.

5.0 я пробовал но не долго, в принцепе показалась достаточно рабочей, но писать под 5.0 не советую, слишком не скоро еще она выйдет.
 

Апельсин

Оранжевое создание
Balancer, полнотекстовый поиск с UTF8 появился только в версии 4.1.1. Hint: 4.1.2 еще не вышла.
Потому слушай что тебе Тони говорит - составляй test case.
 

Balancer

Guest
Ок, попробую составить. Хотя проблема тут, кажется, в том, что баги лезут только на больших базах. Т.е. придётся ещё и их генерацию писать. Подумаю :)

Скорей бы 4.1.2 выходила :D
 

Апельсин

Оранжевое создание
можешь подождать немного бинарников. 4.1.2 уже заморозили, так что они скоро должны уже быть.
 

Balancer

Guest
Автор оригинала: Апельсин
можешь подождать немного бинарников. 4.1.2 уже заморозили, так что они скоро должны уже быть.
Я б подождал, но народ жаждет крови хочет поиска :)

Поставил вчера 4.1.2. И уже откатился на 4.1.1
Не знаю, кто виноват, может, и совпадение, но глюки страннейшие. На форуме пропал весь народ из основной группы "Пользователи" (iBF 1.2) - т.е. у каждого юзера в профиле такая группа числится, а вот число состоящих в этой группе в админке - 2 человека (из нескольких тыс :D ) В результате поехали все права доступа, народ не может постить... Откатываться на ночной бэкап не хочется, т.к. уже успели очень много всего понаписать за ночь, жалко :)

FULLTEXT... Тормоза с ним не прошли, но работать стал поустойчивее. По крайней мере после выпадения новой серии "Duplicate key..." после перезапуска скрипта снова стал добавлять записи, без починки таблицы.

Но чинить таблицы с FULLTEXT по-прежнему невозможно - за ~7 часов на 2xXeon 1800 индекс так и не создаётся.

Кончилось тем, что сегодня утром Apache стал падать на попытках PHP выполнить mysql_connect. Откат на 4.1.1 не помог. Вылечилось (после отката) перезагрузкой сервера. А до этого, блин, больше года не перезагружался :-/
 
Сверху