Тяжелые запросы к базе

 
Посетитель
no avatar
МедальПочетный донор проекта
Сообщений: 124
Из техподдержки хостинга получил письмо.
-------------------------------
Уведомляем Вас, что работой базы данных MySQL создается повышенная нагрузка на
сервер баз данных. Примеры запросов находятся в прикрепленном файле.

Оптимизируйте, пожалуйста, Ваши скрипты, SQL-запросы и дайте нам знать о результатах.

Например, Вы можете использовать метод EXPLAIN для выяснения "тяжелых" запросов и создание
индексов (CREATE INDEX), тем самым снизив нагрузку на базу данных.
--------------------------------

Код PHP:
  1. SELECT c.id as id,
  2. c.target as target,
  3. c.target_id as target_id,
  4. c.target_link as target_link,
  5. c.content as content,
  6. c.guestname,
  7. c.pubdate as fpubdate,
  8. IFNULL(c.user_id, 0) as user_id,
  9. IFNULL(u.nickname, '') as author,
  10. IFNULL(u.login, '') as author_login,
  11. IFNULL(v.total_rating, 0) as rating
  12. FROM hs_users u, hs_comments c
  13. LEFT JOIN hs_ratings_total v ON v.item_id=c.id AND v.target='comment'
  14. WHERE (c.user_id=u.id OR c.guestname<>'') AND c.published=1 AND (c.target="article" OR c.target="blog" OR c.target="palbum" OR c.target="photo" OR c.target="userphoto" OR c.target="catalog" OR c.target="faq")
  15. GROUP BY c.id
  16. ORDER BY c.pubdate DESC
  17. LIMIT 100;
За что отвечают эти запросы и можно ли их как-то облегчить?
И что означает:
использовать метод EXPLAIN для выяснения "тяжелых" запросов и создание индексов (CREATE INDEX)
InstantCMS Team
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 4338
SergeyK:
За что отвечают эти запросы и можно ли их как-то облегчить?
этот запрос отвечает за вывод последних комментариев.
Облегчить его можно. В версии 1.7 посмотрю что с ним можно сделать в общем случае.
А так же можно решить в данном вашем конкретном случае.
SergeyK:
И что означает: использовать метод EXPLAIN для выяснения "тяжелых" запросов и создание индексов (CREATE INDEX)
гугл в помощь: гуглить на тему EXPLAIN и CREATE INDEX.
В общих чертах: первое это метод отладки и выявления узких мест запроса через консоль mysql, второе команда создания индекса на определенное поле таблицы.
Видео каталог для InstantCMS | Аудио каталог для InstantCMS | Мы Вконтакте | Предложение для спонсоров
Реклама
cms
Посетитель
no avatar
МедальПочетный донор проекта
Сообщений: 124
Вот совет от техподдержки:
Необходимо проставить индексы по полям c.guestname, c.user_id и c.target, что значительно снизит нагрузку на диски сервера и вероятно полностью уберет медленные запросы к базе.
InstantCMS Team
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 4338
SergeyK:
Необходимо проставить индексы по полям c.guestname, c.user_id и c.target, что значительно снизит нагрузку на диски сервера и вероятно полностью уберет медленные запросы к базе.
да, все верно. создайте индексы на указанных полях.
Сам запрос я переделаю, в версии 1.7 будет нормальный запрос.
Видео каталог для InstantCMS | Аудио каталог для InstantCMS | Мы Вконтакте | Предложение для спонсоров
Посетитель
no avatar
МедальПочетный донор проекта
Сообщений: 124
Fuze:
да, все верно. создайте индексы на указанных полях.
Не подскажите, как именно это сделать?
Я дилетант в этом деле, а то сайт загибается... под нагрузкой
он-лайн около 450 человек сидят...
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.