База данных падает
#1
Отправлено 27 октября 2010 - 17:08
Сейчас возросло количество пользователей и сайт стал падать.
Я посмотрел лог Мускула перед падением сервера.
В логе большое число запросов, которые локают таблицы в базе данных. Подозреваю, что причина может быть именно в этом.
Кто-нибудь сталкивался с подобным? Как решали проблему? Наверняка советов много, попробовал бы всё.
Заранее спасибо!
#2
Отправлено 27 октября 2010 - 17:14
А вообще надо анализировать запросы explain'ом, вычленять slowlog
P.S. сайт стал падать - это что есть? может там просто лимит на кол-во одновременных подключений к БД?
#3
Отправлено 27 октября 2010 - 17:25
Да, в апаче установлен лимит. А разве пользователей не ставит в таком случае в очередь?может там просто лимит на кол-во одновременных подключений к БД
Попробую переделать в InnoDB. Авось, поможет. Потом поанализирую запросы.
А вообще когда лучше использовать ИнноДБ. Какое должно быть соотношение селектов и записей, чтобы было целесообразно?
#4
Отправлено 27 октября 2010 - 17:41
При чём тут апаче?Да, в апаче установлен лимит. А разве пользователей не ставит в таком случае в очередь?
Очередей нет.
Попробую переделать в InnoDB. Авось, поможет. Потом поанализирую запросы.Хуже конечно не станет, но нужно понимать что делаете. Я например вообще не использую MyIsam, да и в случае падения таблицы myisam постоянно крошатся, иннодб в этом плане надёжней + транзакции и внешние ключи, без них никак
#7
Отправлено 28 октября 2010 - 00:22
– Совсем худо, – заключил хозяин, – что-то, воля ваша, недоброе таится в мужчинах, избегающих вина, игр, общества прелестных женщин, застольной беседы. Такие люди или тяжко больны, или втайне ненавидят окружающих.
#9
Отправлено 28 октября 2010 - 10:58
Надо смотреть explain. Чаще мелкие запросы могут оказаться шустрее за счёт более грамотного использования индексов и за счёт кеширования на стороне БД.Я всегда считал, что лучше сделать один запрос на страницу подлиннее, чем кучу мелких запросов. А мне только что сказали, что лучше как раз наоборот. Что подсказывает ваш опыт, ребята?
#11
Отправлено 28 октября 2010 - 11:58
В сети полно информации.Можете ли объяснить объективную разницу между ними? Почему InnoDB работает быстрее и чем так плох MyISAM?
InnoDb работает быстрее когда в таблицу идёт много записей и считываний, т.к. myisam на каждую запись лочит ВСЮ таблицу, иннодб лочит только 1 строку. Из-за этого праллельные вставки в myisam невозможны, что будет создавать большие очереди при очень большой нагрузке.
Myisam работает быстрее когда много чтений и почти нет записей
MyIsam как я говорил после падения сервера ломает почти все таблицы, и приходится из консоли делать им myisamcheck чтобы починить. возможны потери данных. иннодб сам себя чинит используя для этого журналы, там ещё есть свои оговорки по стабильности.
#17
Отправлено 28 октября 2010 - 12:50
Просто для статичной базы, цель которой только поиск избранных данных, что лучше выбрать? Инно или Исам? Имеется ввиду fulltextsearch.
Сообщение изменено: Clement (28 октября 2010 - 12:50 )
#19
Отправлено 28 октября 2010 - 13:20
Спасибо. Просто читал тут иностранный холивар, использовать или нет эту функцию, плюсы-минусы. Кто-то говорит очень долгие запросы, кто-то вроде оптимизировал... А с полным набором стопвордов и смысл пропадает использовать еёFULLTEXT - только в myisam есть
Надо-то мелочь, чтобы грамотно искал не по кускам слов, а полному предложению
#21
Отправлено 28 октября 2010 - 13:43
У нас есть база с текстом книг и авторами, вот для этих целей сфинкс подойдёт?
#22
Отправлено 28 октября 2010 - 14:25
В базе: гидроэлектростанция
Ищем: электростанция
не найдёт ничего (чтобы искал не с начала слова, индекс будет в 100 раз больше весить чем без этой ф-ции) я так создал чудо-индекс из 1 Гб информации на 100 Гб
Ищем: гидро
найдёт гидроэлектростанцию
#23
Отправлено 06 ноября 2010 - 01:00
2Setor, эт ты о насущном? Хе хе. Кстати по разбиению слов есть одна мысль, сократит твой 100гиговый индекс раз может в 10. Интересно?
www.blackcrystal.net \/ Show what You can. Learn what You don't.