这里是
SELECT tbl_rls . * , (
SELECT count( * )
FROM `comments`
WHERE `post_id` = `tbl_rls`.`id`
) AS `t_comments`
FROM `tbl_rls`
WHERE 1 =1
AND `status` <> 'denied'
AND (
`id`
IN (
SELECT `rls_id`
FROM `tbl_visitors_logs`
WHERE `date` LIKE '2010-07-02%'
AND `page_type` = 'post'
GROUP BY `rls_id`
ORDER BY count( * ) DESC
)
)
AND (
`cat` = '6'
OR `cat`
IN (
SELECT `id`
FROM `tbl_cats`
WHERE `parent_id` = '6'
)
)
ORDER BY `tbl_rls`.`date` DESC
LIMIT 0 , 20
这几乎是在执行时杀死数据库,有人可以建议解决方案以使其快速吗?
我在这里提供任何需要的额外信息。
谢谢。
最佳答案
你有没有运行 EXPLAIN命令查看查询的哪一部分运行缓慢?
此外,这一行可能是个问题:WHERE date LIKE '2010-07-02%'
这可能导致日期列被转换为字符串(请告诉我这不是string!) 这将阻止使用任何索引。请尝试 WHERE DATE(date) = '2010-07-02'
。
关于php - 如何提高这个mysql查询的速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3169189/