Индексы для таблиц в 1.8

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#1 28 июня 2011 в 13:20
Вопрос, а стоит ли в версии 1.8 проставлять, индексы для таблиц?
К примеру, вот этой: cms_comments?
Вопрос возник от того что идет постоянная нагрузка с модуля Последние комментарии от этого тормозит весь сайт

Вот лог:
  1.  
  2. # Time: 110628 9:27:03
  3. # User@Host: dbu[dbu5] @ [192.168.5.74]
  4. # Query_time: 3 Lock_time: 0 Rows_sent: 10 Rows_examined: 3528
  5. SET timestamp=1309238823;
  6. SELECT con.*,
  7. DATE_FORMAT(con.pubdate, '%d-%m-%Y') as fpubdate,
  8. DATE_FORMAT(con.pubdate, '%H:%i') as fpubtime,
  9. u.nickname as author,
  10. u.login as user_login,
  11. cat.title as title_cat,
  12. cat.seolink as seolink_cat,
  13. p.imageurl as user_imageurl
  14. FROM cms_content con
  15. INNER JOIN cms_users u ON con.user_id = u.id
  16. INNER JOIN cms_category cat ON con.category_id = cat.id
  17. INNER JOIN cms_user_profiles p ON p.user_id = con.user_id
  18. WHERE con.published = 1 AND con.is_arhive = 0 AND con.user_id = u.id
  19. AND (con.is_end=0 OR (con.is_end=1 AND con.enddate >= NOW() AND con.pubdate <= NOW()))
  20. ORDER BY con.pubdate DESC
  21. LIMIT 0, 10;
  22.  
Или все таки в версии 1.8 не стоит простовлять индексы?
#2 28 июня 2011 в 13:47
В чистой 1.8 90% индексов уже есть в установочном дампе.
Приведенный запрос не от модуля комментариев. Это запрос от компонента content или от какого-то вашего модуля вывода материалов.
Запрос да, не особо отличается производительностью, чтобы что-то конкретное сказать необходимо смотреть вывод explain запроса на вашей базе.
Модуль комментариев в 1.8 не тормозит, если отключить показ комментариев гостей.
#3 28 июня 2011 в 14:22
Такой запрос?
  1.  
  2. EXPLAIN SELECT *
  3. FROM cms_content
  4.  
#4 28 июня 2011 в 14:52

Такой запрос?

Александр
  1. EXPLAIN SELECT con.*,
  2. DATE_FORMAT(con.pubdate, '%d-%m-%Y') as fpubdate,
  3. DATE_FORMAT(con.pubdate, '%H:%i') as fpubtime,
  4. u.nickname as author,
  5. u.login as user_login,
  6. cat.title as title_cat,
  7. cat.seolink as seolink_cat,
  8. p.imageurl as user_imageurl
  9. FROM cms_content con
  10. INNER JOIN cms_users u ON con.user_id = u.id
  11. INNER JOIN cms_category cat ON con.category_id = cat.id
  12. INNER JOIN cms_user_profiles p ON p.user_id = con.user_id
  13. WHERE con.published = 1 AND con.is_arhive = 0 AND con.user_id = u.id
  14. AND (con.is_end=0 OR (con.is_end=1 AND con.enddate >= NOW() AND con.pubdate <= NOW()))
  15. ORDER BY con.pubdate DESC
  16. LIMIT 0, 10;
#5 28 июня 2011 в 15:06
Спасибо. Показал во чего
#6 28 июня 2011 в 16:01
Индексов у вас нет)
Выполните в phpmyadmin:
  1. ALTER TABLE `cms_user_profiles` ADD INDEX ( `user_id` );
  1. ALTER TABLE `cms_content` ADD INDEX ( `user_id` );
  1. ALTER TABLE `cms_content` ADD INDEX ( `category_id` );
#7 28 июня 2011 в 16:47
Сделал спасибо Вам большое, а вот не подскажете а другим пользователям версии 1.8 тоже может лучше это сделать? т.к. отмечал у некоторых бывают похожие тормоза.
#8 28 июня 2011 в 16:50
в 1.8 версии при чистой установке индексы создаются при установке.
При миграции до 1.8 если этих индексов нет, то да можно сделать.
#9 28 июня 2011 в 16:59
Ок спасибо, ресурс начал пархать как бабочка dance
#10 28 июня 2011 в 22:24
рад что помог.
не забывайте закрывать тему "Проблема решена, закрыть тему"
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.