Mysql автоматически прибивать долгие запросы

grigori

( ͡° ͜ʖ ͡°)
Команда форума
hi all
мой друг ведет форум на phpBB buhforum.com, иногда форум виснет под дедлоками
на днях я отловил одну такую ситуацию
1119 | Copying to tmp table | SELECT p.post_id FROM (phpbb_search_wordmatch m1, phpbb_search_wordmatch ...
734 | Waiting for table level lock | INSERT INTO phpbb_search_wordmatch (post_id, word_id, title_match) SELECT 41320, word_id ...
xxx | Waiting for table level lock | DELETE FROM phpbb_posts ...
и 12 запросов висят со статусом "Waiting for table level lock"

таблица phpbb_search_wordmatch - это полнотекстовый поиск у phpBB, занимает 40 метров, 2,5 млн записей, и переписывать это никто не будет
PHP:
 TABLE `phpbb_search_wordmatch` (
  `post_id` int,
  `word_id` int,
  `title_match`, tinyint
запросы там, в принципе, по индексам, с какого хрена он "Copying to tmp table" я не знаю, дебажить не буду, случается это нечасто, и отключать поиск по форуму тоже нельзя.
Поднял значение tmp_table_size до 40, уменьшил количество php-воркеров, вдруг поможет.

Вопрос 1: может, кто сталкивался и знает быстрый фикс?
Вопрос 2: как прибивать долгий запрос в mysql? Поделитесь скриптом. Слышал про перконовскую утилиту, но просто ли ее ставить?

Server version: 5.5.19-log MySQL Community Server, vps 512 ram (128 на индексы), 9 fpm-воркеров
 

Вурдалак

Продвинутый новичок
Если там MyISAM, то быстрый фикс, вероятно, — переход на InnoDB, там не будет локов на уровне таблицы.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
Вурдалак ты прав, там MyISAM, переведу основные таблицы на innodb, спасибо
вот, блин, кто ж такие идиоты, я и забыл про myisam уже!

но прибивать долгие запросы все-равно надо, кто умеет?
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
эх, > alter table phpbb_posts engine=innodb;
ERROR 1214 (HY000): The used table type doesn't support FULLTEXT indexes
основную таблицу не получится перевести, зачем же там эмуляция fulltext, если есть fulltext index?!
 

confguru

ExAdmin
Команда форума
Не проще поставить shpinx и искать им? Тем более что он уже поддерживает SQL формат.
 

confguru

ExAdmin
Команда форума
Не проще поставить shpinx и искать им? Тем более что он уже поддерживает SQL формат.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
Конечно, sphinx решил бы, но этим просто некому заняться.
fixxxer та да, смотрел даже на него, можно перейти, только лень из rpm руками ставить :)
надо глянуть в centalt
 
Сверху