ну как говорится — флаг вам в руки , помогите нам, оптимизируйте запросы.не слышал про то что они тяжелые если раставить правильно индексы, ну и еще пару полезных мелочей при оптимизации сделать: типо выборка тех полей который нужны,
- Предыдущая
- 1
- 2
- Показаны 16-25 из 25
no problem.ну как говорится — флаг вам в руки, помогите нам, оптимизируйте запросы.
код запроса(ов)
EXPLAIN
и результаты профилирования в студию:)
ну или как вариант дайте дамп таблиц которые используются в запросе и сам(и) запрос(ы)
SELECT p.pubdate, p.id as post_id,
u.id as uid, u.nickname as author,
u.login as author_login,
t.title as threadtitle, t.id as threadid
FROM cms_forum_posts p FORCE INDEX (uthr)
LEFT JOIN cms_forum_threads t USE INDEX (fi) ON t.id = p.thread_id AND t.is_hidden=0
INNER JOIN cms_forums f USE INDEX (NSRP) ON f.id = t.forum_id
LEFT JOIN cms_users u ON u.id = p.user_id
WHERE (f.NSLeft >= 2 AND f.NSRight <= 7)
ORDER BY p.id DESC
LIMIT 1
SELECT con.*, con.id as slid, con.pubdate as fdate, u.nickname as author, u.login as author_login
FROM cms_content con
LEFT JOIN cms_category cat ON cat.id = con.category_id
LEFT JOIN cms_users u ON u.id = con.user_id
WHERE con.published = 1 AND con.showlatest = 1 AND con.category_id = 21
AND (con.is_end=0 OR (con.is_end=1 AND con.enddate >= '2012-09-06 23:29:38' AND con.pubdate <= '2012-09-06 23:29:38'))
ORDER BY con.id DESC LIMIT 6
SELECT *, m.id as mid, m.template as tpl
FROM cms_modules m, cms_modules_bind mb
WHERE (mb.position = 'foo_banner') AND
m.published = 1 AND
m.id = mb.module_id AND
(mb.menu_id = '38' OR mb.menu_id = 0)
ORDER BY m.ordering ASC
SELECT *, m.id as mid, m.template as tpl
FROM cms_modules m, cms_modules_bind mb
WHERE (mb.position = 'main_menu') AND
m.published = 1 AND
m.id = mb.module_id AND
(mb.menu_id = '21' OR mb.menu_id = 0)
ORDER BY m.ordering ASC
код запроса(ов)
EXPLAIN
и результаты профилирования в студию:)
тяжело судить по одному запросу😊кинь хотя бы структуру таблиц, если не можешь профилирование и explain(ну или дамп если есть возможность.)
FROM cms_forum_posts p
FORCE INDEX ( uthr )
LEFT JOIN cms_forum_threads t
USE INDEX ( fi ) ON t.id = p.thread_id
AND t.is_hidden =0
INNER JOIN cms_forums f
USE INDEX ( NSRP ) ON f.id = t.forum_id
LEFT JOIN cms_users u ON u.id = p.user_id
WHERE (
f.NSLeft >=2
AND f.NSRight <=7
)
ORDER BY p.id DESC
LIMIT 1
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE f range NSRP NSRP 4 NULL 4 Using where; Using temporary; Using filesort
1 SIMPLE t ref fi fi 8 eolegnn_nnonline.f.id,const 2627 Using where
1 SIMPLE p ref uthr uthr 4 eolegnn_nnonline.t.id 1
1 SIMPLE u eq_ref PRIMARY PRIMARY 4 eolegnn_nnonline.p.user_id 1
это пока все что могу сейчас, вечером таблицы сброшу, но они есть в пакете инсталляционном
Так и не нужно воспроизводить, нужно посмотреть взлягодом программиста и сказать:Чтобы повторить ваш запрос нужно иметь аналогичный объем данных.
— Здесь все отлично с запросом, ничего не улучшишь
— Этото запрос можно сделать так и так
Это я добавил сам.используется какой то индекс
- Предыдущая
- 1
- 2
- Показаны 16-25 из 25