我有一个查询,找到最近的日期时评论是在一个特定页的文章提出:查找在MySQL最近评论日期 - 速度问题
SELECT created_on , created_by_name, created_by_id , body
FROM ac2012.acx_comments WHERE created_on IN (
SELECT MAX(created_on)
FROM ac2012.acx_comments WHERE parent_id = '642')
查询工作,打印出最parent_id的最近评论日期为642.
但是,此查询大约需要4秒。这与我的大多数查询相比平均只需要0.1秒。
我想知道 - 是否有一个原因,为什么它需要这么长时间,我怎么能让它走得更快?例如,我认为将其限制为parent_id“642”将通过仅查看3个注释行开始查询......这应该使得created_on的最大值的计算不会很长。
任何建议,将不胜感激。或许WHERE应该放在别的地方来优化速度?
请参阅表架构这里:https://docs.google.com/spreadsheet/pub?key=0AjkotydroXWqdHBEOHAtalJpazROaHh3R0VpM0hZSlE&output=html
喜@Daniel ,你能提供你的表格模式吗? – Neo
在Transact-SQL中,您可以执行'SELECT TOP 1 ... FROM acx_comments WHERE ... ORDER BY created_on DESC'。只需将“TOP”转换为“LIMIT”,您应该适合MySQL。 –
你有关于parent_id ....的索引吗? – alwaysLearn