вопрос
Добрый день!
Подскажите пожалуйста, как максимально ускорить отдачу главной страницы на большой базе mysql?
Найдена на просторах интернета небольшая инструкция, подскажите как применить, в каком файле подправить сам запрос?
По дефолту представлен следующий запрос:
С помощью него mysql отдает ответ за 3.1171 сек. Я чуть чуть подкорректировал его и привел к такому виду:
Данный запрос отрабатывает за 1.3736 сек.
Добавьте в сортировку поле dle_post.id и передавайте в запрос dle_post.id и dle_post.date из последней строки предыдущей выборки. Будет такой запрос:
Подскажите пожалуйста, как максимально ускорить отдачу главной страницы на большой базе mysql?
Найдена на просторах интернета небольшая инструкция, подскажите как применить, в каком файле подправить сам запрос?
По дефолту представлен следующий запрос:
SELECT p.id, p.autor, p.date, p.short_story,
CHAR_LENGTH(p.full_story) as full_story,
p.xfields, p.title, p.category, p.alt_name,
p.comm_num, p.allow_comm, p.fixed, p.tags,
e.news_read, e.allow_rate, e.rating, e.vote_num,
e.votes, e.view_edit, e.editdate, e.editor, e.reason
FROM dle_post p LEFT JOIN dle_post_extras e ON (p.id=e.news_id)
WHERE approve=1 AND allow_main=1 AND date < '2017-05-18 14:23:53'
ORDER BY date DESC LIMIT 182208,48
С помощью него mysql отдает ответ за 3.1171 сек. Я чуть чуть подкорректировал его и привел к такому виду:
SELECT p.id, p.autor, p.date, p.short_story,
CHAR_LENGTH(p.full_story) as full_story,
p.xfields, p.title, p.category, p.alt_name,
p.comm_num, p.allow_comm, p.fixed, p.tags,
e.news_read, e.allow_rate, e.rating, e.vote_num,
e.votes, e.view_edit, e.editdate, e.editor, e.reason
FROM dle_post p LEFT JOIN dle_post_extras e ON (p.id=e.news_id)
JOIN ( SELECT id
FROM dle_post
WHERE approve=1 AND allow_main=1
AND date < '2017-05-18 14:23:53'
ORDER BY date DESC LIMIT 182208,48
) as t ON t.id = p.id
Данный запрос отрабатывает за 1.3736 сек.
Добавьте в сортировку поле dle_post.id и передавайте в запрос dle_post.id и dle_post.date из последней строки предыдущей выборки. Будет такой запрос:
SELECT p.id, p.autor, p.date, p.short_story,
CHAR_LENGTH(p.full_story) as full_story,
p.xfields, p.title, p.category, p.alt_name,
p.comm_num, p.allow_comm, p.fixed, p.tags,
e.news_read, e.allow_rate, e.rating, e.vote_num,
e.votes, e.view_edit, e.editdate, e.editor, e.reason
FROM dle_post p
LEFT JOIN dle_post_extras e ON (p.id=e.news_id)
WHERE approve=1
AND allow_main=1
AND (p.date < @last_date
OR
(p.date = @last_date
AND p.id = @last_id))
ORDER BY date DESC, id DESC
LIMIT 48;