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

  • Автор темы Автор темы grigori
  • Дата начала Дата начала

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, там не будет локов на уровне таблицы.
 
Вурдалак ты прав, там MyISAM, переведу основные таблицы на innodb, спасибо
вот, блин, кто ж такие идиоты, я и забыл про myisam уже!

но прибивать долгие запросы все-равно надо, кто умеет?
 
эх, > alter table phpbb_posts engine=innodb;
ERROR 1214 (HY000): The used table type doesn't support FULLTEXT indexes
основную таблицу не получится перевести, зачем же там эмуляция fulltext, если есть fulltext index?!
 
Не проще поставить shpinx и искать им? Тем более что он уже поддерживает SQL формат.
 
Не проще поставить shpinx и искать им? Тем более что он уже поддерживает SQL формат.
 
Конечно, sphinx решил бы, но этим просто некому заняться.
fixxxer та да, смотрел даже на него, можно перейти, только лень из rpm руками ставить :)
надо глянуть в centalt
 
Сверху