SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 23.12.2009 00:28:52

nixsystem
Участник
Зарегистрирован: 23.12.2009
Сообщений: 4

Проблемы при FULLTEXT initialization.

Доброго времени суток smile

Помогите пожалуйста разобраться с такой проблемой
Недели две назад повторно закрыли мой сайт "за превышение максимально-допустимой нагрузки на БД".  В ходе переписки с сапортом хостера единственное что удалось получить в ответ на вопрос "Что конкретно грузит базу" выдежку из логов, дословно:

| 95 | **name** | localhost | **account** | Query | 129 | FULLTEXT initialization | SELECT id, title, date, category, alt_name, flag FROM dle_post WHERE MATCH (title, short_story, full |

и пояснение что именно такие запросы и являются причиной превышения нагрузки.

У хостера следующая конфигурация:

Сервер: Localhost via UNIX socket
Версия сервера: 5.0.51a-community-log
Версия PHP: 5.2.9
Версия протокола: 10
MySQL-кодировка: UTF-8 Unicode (utf8)

Проблема возникла на DLE 7.0

Подскажите пожалуйста, гуру администрирования БД и оптимизации запросов, как устранить данную неприятность ?

Заранее спасибо, всем ответившим smile

Неактивен

 

#2 23.12.2009 17:06:06

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Проблемы при FULLTEXT initialization.

Вообще, конечно, FAQ#10, но в данном конкретном запросе
DLE как раз не виноват. У хостера проблемы с полнотекстовым
поиском. Возможно, у него просто сильно загружена база, а
отрывается он на Вас.

Единственное, что стоит проверить, — что табличка dle_post
типа MyISAM и что есть полнотекстовый индекс на всех указанных
в запросе полях (title, short_story, full и всех остальных, которые
провайдер не написал). Если всё это есть, то тогда надо менять
провайдера.

Неактивен

 

#3 23.12.2009 22:57:20

nixsystem
Участник
Зарегистрирован: 23.12.2009
Сообщений: 4

Re: Проблемы при FULLTEXT initialization.

Смена хостинга  - безусловно выход, но вот только не хочется терять предоплаченных за хостинг денег.

paulus написал:

Единственное, что стоит проверить, — что табличка dle_post
типа MyISAM и что есть полнотекстовый индекс на всех указанных
в запросе полях (title, short_story, full и всех остальных, которые
провайдер не написал).

Зашел в phpMyAdmin, проверил указанные параметры -  все так как и написано, тип - MyISAM, индексируемое, полнотекстовый индекс.

Сегодня еще нашел такую тему на офф сайте MySQL, но мне не удалось получить аналогичную ошибку в тепличных (Denwer) условиях. Насколько я понимаю это известный, причем давно, баг MySQL и на него пока еще нет фикса, или я не там копаю ?

Неактивен

 

#4 24.12.2009 17:52:25

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Проблемы при FULLTEXT initialization.

Ммм, да, печально. Выглядит действительно как Ваша бага sad

Единственное «но»: полнотекстовый индекс в любом случае очень плохо работает
с полями в utf-8; если Вы можете себе позволить отказаться от utf-8, то, возможно,
это Вас спасет. Т.е. alter table dle_post convert to charset cp1251. Но при этом Вы
потеряете возможность добавлять туда символы, не входящие в кодировку cp1251.

Опять же, можно попробовать преобразовывать в другую кодировку unicode (ucs2),
возможно, на ней эта ошибка не проявляется. Сделайте бэкап и попробуйте, начиная
с ucs2, и, если не поможет, то cp1251.

Неактивен

 

#5 24.12.2009 22:08:52

nixsystem
Участник
Зарегистрирован: 23.12.2009
Сообщений: 4

Re: Проблемы при FULLTEXT initialization.

paulus написал:

alter table dle_post convert to charset cp1251. Но при этом Вы
потеряете возможность добавлять туда символы, не входящие в кодировку cp1251.

Что это за символы ? всевозможные национальные алфавиты, наподобие китайского и иже с ними, если да - то отказаться от utf-8 не проблема, т.к. единственное что мне нужно - кирилица и латинский стандартный алфавит.

Тем более только что посмотрел - у меня все таблицы живут в кодировке cp1251_general_ci (точнее напротив каждой таблицы в поле "Сравнение" в phpMyAdmin - указана именно эта кодировка).

Единственное что в utf-8 это "Сопоставление соединения с MySQL - utf8_general_ci" и "MySQL-кодировка: UTF-8 Unicode (utf8)"

И самое интересное - около полугода все работало нормально, при том что посещаемость и, соответственно нагрузка на БД, были значительно выше чем в период предшествующий "закрытию". Что-то мне подсказывает что хостер сменил версию MySQL.. и баги свежей версии не заставили себя долго ждать sad

В общем случае ситуация "Я ничего не делал, не менял, не трогал - оно само поломалось"..

Неактивен

 

#6 25.12.2009 14:02:01

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Проблемы при FULLTEXT initialization.

Если так, то, скорее всего, Вы тут уже ничего сделать не сможете. Разве что написать
ссылку на эту багу хостеру, чтобы они смотрели сами, что можно с этим сделать.

Неактивен

 

#7 26.12.2009 00:15:13

nixsystem
Участник
Зарегистрирован: 23.12.2009
Сообщений: 4

Re: Проблемы при FULLTEXT initialization.

А что, если посоветовать хостеру сменить MySQL 5.0.51 на 5.0.45 ?

У меня пока только предположения и нет ни веских аргументов и ни четких формулировок..
Есть ли вероятность, что проблема возникла в результате обновления сервера MySQL и может разрешиться при понижении версии ?

И как это можно проверить в "домашних условиях" ?

Неактивен

 

#8 26.12.2009 01:36:17

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Проблемы при FULLTEXT initialization.

Ну, советовать хостеру ничего нельзя, конечно. Можно показать им ссылку
на эту ошибку и сказать, что она у Вас и наблюдается, что Вы ни в чем не
виноваты. Соответственно, пусть они сами думают — откатывать им версию
MySQL 5.0 или наоборот обновляться до 5.1. В 5.0.83 проверил, ошибка есть.
В 5.1.37 ошибки нету.

Проверить проще всего скачав php-файл из указанной Вами ссылки (я брал
Светин вариант), отредактировав параметры подключения и запустив его.
В случае с 5.0 сценарий виснет, в случае с 5.1 — завершается успешно.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson