sergasd
Новичок
Делаю простенький форум.
Таблицы:
users
user_id | user_name | register_date
topics
topic_id | user_id | topic_title | topic_date
posts
post_id | topic_id | user_id | post_text | post_date
На главной странице необходимо вывести список тем, авторов тем, время и автора последнего сообщения в теме. Написал запрос (ниже). При небольшом числе постов работает довольно быстро, для экспиримента вставил в таблицу постов 200000 записей и запрос начал выполняться ~1.5 сек. Как его можно оптимизировать?
Таблицы:
users
user_id | user_name | register_date
topics
topic_id | user_id | topic_title | topic_date
posts
post_id | topic_id | user_id | post_text | post_date
На главной странице необходимо вывести список тем, авторов тем, время и автора последнего сообщения в теме. Написал запрос (ниже). При небольшом числе постов работает довольно быстро, для экспиримента вставил в таблицу постов 200000 записей и запрос начал выполняться ~1.5 сек. Как его можно оптимизировать?
PHP:
SELECT TITLE, ID, AUTOR, COUNT, LAST_POST, posts.post_date, users.user_name
FROM posts JOIN users USING(user_id)
JOIN
(
SELECT topics.topic_title AS TITLE, topics.topic_id AS ID, users.user_name AS AUTOR,
COUNT( posts.post_id ) AS COUNT, MAX( posts.post_id ) AS LAST_POST
FROM topics
JOIN posts
USING ( topic_id )
JOIN users ON users.user_id = topics.user_id
GROUP BY topics.topic_title
)
AS tbl ON posts.post_id = LAST_POST