Hex来~~mysql查询优化问题
select ID,title from pp_news order by pubdate desc limit 2370000,30 这个查询要全表扫描可费时间了~~我怎么写SQL语句,才能查询到与上面语句一样的结果? 呵呵,我不是 SQL 优化专家,还是别给你乱出主意了~~
我一般也是这么写,呵呵 select ID,(select title from pp_news b where b.ID=a.ID) as title from pp_news a order by pubdate desc,ID desc limit 230000,100
这样快了些~但也花了0.43秒~
[ 本帖最后由 pp18180058 于 2008-12-7 10:42 编辑 ] 如果你的第二条比第一条快,说明你索引没建好。
索引要建在 ID, title 上,而不是分开建。 我是 select ID,title,pubdate,senddate,categoryID from pp_news order by pubdate desc,ID desc limit 230000,100
我建了一个索引 ID,title,pubdate,senddate,categoryID
其它索引是
title一个
pubdate一个
senddate一个
categoryID一个
isHidden一个
这个建有没有错?
上面那个SQL虽然建了索引,但还是需要2s以上~~~
沧蓝 Help me~~~~~是什么原因? SELECT ID,title,pubdate,senddate,categoryID
FROM pp_news
WHERE ID in (SELECT ID FROM pp_news ORDER BY pubdate desc,ID DESC LIMIT 230000,100)
这样你试试看,应该会快些,还有,如果230000这个数字比较靠后,排序方式换成ASC也可能会快些 This version of MySQL doesn't yet support 'Limit & IN/ALL/ANY/SOME subquery'
错误提示,我的版本不支持那个查询In~~~我的mysql版本是 5.0.51a
应该别的版本也不支持~~大家帮忙想想~~ pubdate和title要建索引,这是必须的,但是百万条记录对mysql来说已经到极限了,可以考虑换一个了,能达到0.43秒的那个兄弟是高手,你问他吧,我对优化不熟 原帖由 沧蓝 于 2008-12-7 15:34 发表 http://codeigniter.org.cn/forums/images/common/back.gif
如果你的第二条比第一条快,说明你索引没建好。
索引要建在 ID, title 上,而不是分开建。
索引要建在 ID, title 上 这是为何,不太明白 原帖由 tboqi 于 2008-12-12 00:08 发表 http://codeigniter.org.cn/forums/images/common/back.gif
能达到0.43秒的那个兄弟是高手,你问他吧,我对优化不熟 ...
晕~~~那是楼主~~