Оптимизация БД
Пятница, 21 августа 2009 г.Рубрика: Вебмастеру -> Полезное
Метки: BD MySQL | оптимизация
Подписаться на комментарии по RSS
Практически все современные блоги и сайты работают на движках которые используют в качестве БД MySQL, ну или не меньше 95% всех движков. Есть конечно и другие виды баз данных, но они используются в очень малом количестве движков. Про использовании в качестве базы данных простых текстовых файлов я вообще молчу. Подобные решения я встречал лиш в очень простых движках разработки многолетней давности. Подобные базы очень нестабильны и ненадёжны. Потерять все данные из текстовых файлов можно при любой перегрузке файловой системы.
Так вот, вернёмся к нашим баранам, а точнее к базам данных BD MySQL, на интернет слэнге - мускул. В процессе работы блога или сайта в БД постоянно заносяться каие то данные, а какие то удаляются. При этом в некоторых таблицах, которые чаще всего используются, происходит фрагментация информации. Процесс похож на тот, который происходит при активной эксплуатации Вашего компьютера. Когда долгое время работаеш на компе, он начинает работать медленнее и нужно время от времени производить дефрагментацию дисков. То же самое нужно делать и с базами данных. Только называется этот процесс - оптимизация БД.
Существуют движки в которых заранее предусмотренн процесс оптимизации БД. Один из старых движков PHP Nuke и один из новых Даннео позволяют производить оптимизацию БД прямо из админки. Причём если в Nuke это производиться по желанию вебмастера когда он об этом вспомнит, то в Даннео встроенна система оповещения о необходимости произвести оптимизацию БД. По умолчанию это нужно делать раз в 10 суток. Хотя в принципе это зависит от посещаемости сайта, от количества контента и наличия некоторых дополнительных функций. Если хотя бы иногда не производить оптимизацию БД, то во первых страницы сайта начнут открываться немного медленнее, во вторых время обращения к БД будет немного больше. И в конечном итоге нагрузка на сервер будет увеличиваться.
Есть пример из собственного опыта - попросили разобраться с одним сайтом который заметно медленно открывался и его владельцу хостер стал присылать письма счастья. Не буду называть движок, скажу что один из очень популярных последние пару лет. Я не сразу разобрался в чём дело, тестировал сам сервер на нагрузоустойчивость, включил скрипт статистики Awstats для вычисления посещаемости по логам сервера... Лиш когда я залез в БД через PHP My Admin и увидел что там твориться, я понял в чём дело. 3 года никто не оптимизировал БД! Сама база была к тому времени по обьёму более 80 мегабайт а общий обьём неоптимизированного содержимого был в районе 5-6 мегабайт. После оптимизации БД сайт стал летать а хостер забыл о перегрузке сервера.
Ну а как сделать оптимизацию таблиц в БД если сама система управления контентом (движок) Вашего сайта или блога не имеет такой функции? Очень просто, нужно вспомнить Ваш логин и пароль для доступа в панель управления аккаунтом и через него зайти через PHP My Admin в базу данных. На многих хостингах доступ к БД через PHP My Admin разрешенн и по прямой ссылке которую можно получить в панели управления. Нужно только ввести логи и пароль доступа к самой БД. В интерфейсе нужно либо вручную отметить все таблицы которые нуждаются в оптимизации, либо воспользоваться функцией - отметить таблицы нуждающиеся в оптимизации. Потом выбрать в выпадающем списке команд (это в самом низу таблицы) - оптимизировать отмеченные таблицы. Если Вы никогда этого не делали а Ваш сайт или блог достаточно посещаем и ему больше чем 6-7 месяцев, то Вы наверняка заметите увеличение скорости работы.
Комментариев: 1
Спасибо за статью. Оптимизировал свою базу, стало все летать на сайте