我有以下查询,它总是使整个网站下载下来的,原因是其的“等待表级锁”: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