#mysql #database #optimization
#mysql #База данных #оптимизация
Вопрос:
Я использую PHP и MySQL с сервером IIS. Скорость работы моего сайта очень низкая. Может ли кто-нибудь предложить мне хорошие методы оптимизации базы данных и запросов? На этом сайте большой трафик и большая база данных.
Комментарии:
1. @diEcho прав. И откуда вы знаете, что ваша проблема в производительности базы данных, а не в производительности веб-сервера или кода веб-приложения?
Ответ №1:
В зависимости от того, как вы хотели бы оптимизировать. (Меня забавляет, что вы используете PHP, но это может в значительной степени применяться ко всем языкам).
Вы могли бы попытаться сделать ваши запросы более эффективными, чтобы вы делали меньше обращений к серверу во время каждого запроса.
Вы также могли бы попробовать использовать кэширование, например — http://memcached.org / . Таким образом, вам не нужно вызывать базу данных / файлы для создания страницы по каждому запросу, вы просто извлекаете ее из кэша.
И одна статья, которая мне понравилась, была — http://20bits.com/articles/10-tips-for-optimizing-mysql-queries-that-dont-suck — возможно, это и вам поможет.
Комментарии:
1. я уже читал 20bits.com и я применяю все правила. я не могу понять, в чем проблема. я использую индексы, сужаю структуру данных, но эффективного результата нет
Ответ №2:
- Проверьте индексы в вашей базе данных.
Если вы присоединитесь, убедитесь, что можете использовать индекс. Если вы что-то ищете, делайте это с умом. Нет полнотекстового поиска, только индексы и т.д.
-
Проверьте журнал медленных запросов. Или проверьте свои запросы с помощью
explain
для этого. -
Убедитесь, что вы ничего не делаете с блокировкой таблиц. Используете ли вы InnoDB? Тогда вам повезет больше, потому что вы получите блокировку на уровне строк.
-
Проверьте, достаточно ли у вас доступных подключений к вашему серверу.
-
Проверьте настройки кэширования.
Комментарии:
1. я использую myisam . и как я могу проверить журнал медленных запросов.