我有以下查詢,它總是使整個網站下載下來的,原因是其的「等待表級鎖」:MySQL的性能:一個大的查詢總是卡住/慢
/*IPS\Patterns\_ActiveRecordIterator::count:246*/ SELECT SQL_CALC_FOUND_ROWS forums_posts . * , forums_topics . *
FROM `forums_posts`
LEFT JOIN `forums_topics` ON forums_posts.topic_id = forums_topics.tid
LEFT JOIN `core_permission_index` ON core_permission_index.app = 'forums'
AND core_permission_index.perm_type = 'forum'
AND core_permission_index.perm_type_id = forums_topics.forum_id
LEFT JOIN `forums_forums` ON forums_topics.forum_id = forums_forums.id
WHERE (
NULLIF(forums_topics.moved_to, '') IS NULL
)
AND (
forums_forums.password IS NULL
OR (
(
FIND_IN_SET(2, forums_forums.password_override)
)
)
)
AND (
forums_forums.can_view_others =1
OR forums_topics.starter_id IS NULL
)
AND forums_forums.min_posts_view <=0
AND queued =0
AND forums_topics.approved =1
AND (
(
(
FIND_IN_SET(2, perm_2)
)
)
OR perm_2 = '*'
)
ORDER BY post_date DESC
LIMIT 185725 , 25
有什麼我可以做改善這個查詢的性能,而不是殺死進程/等待10分鐘直到它完成?
那是因爲[SQL_CALC_FOUND_ROWS](http://stackoverflow.com/questions/186588/which-is-fastest-select-sql-calc-found-rows-from-table-or-select-count) – Fal