pp18180058 发表于 2008-12-5 05:20:18

Hex来~~mysql查询优化问题

select ID,title from pp_news order by pubdate desc limit 2370000,30 这个查询要全表扫描可费时间了~~

我怎么写SQL语句,才能查询到与上面语句一样的结果?

Hex 发表于 2008-12-5 10:07:23

呵呵,我不是 SQL 优化专家,还是别给你乱出主意了~~
我一般也是这么写,呵呵

pp18180058 发表于 2008-12-7 10:39:14

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 编辑 ]

沧蓝 发表于 2008-12-7 15:34:36

如果你的第二条比第一条快,说明你索引没建好。

索引要建在 ID, title 上,而不是分开建。

pp18180058 发表于 2008-12-9 11:33:18

我是 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~~~~~是什么原因?

lwkyykk 发表于 2008-12-10 13:49:55

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也可能会快些

pp18180058 发表于 2008-12-10 22:17:24

This version of MySQL doesn't yet support 'Limit & IN/ALL/ANY/SOME subquery'

错误提示,我的版本不支持那个查询In~~~我的mysql版本是 5.0.51a

应该别的版本也不支持~~大家帮忙想想~~

tboqi 发表于 2008-12-12 00:08:46

pubdate和title要建索引,这是必须的,但是百万条记录对mysql来说已经到极限了,可以考虑换一个了,能达到0.43秒的那个兄弟是高手,你问他吧,我对优化不熟

tboqi 发表于 2008-12-12 00:10:20

原帖由 沧蓝 于 2008-12-7 15:34 发表 http://codeigniter.org.cn/forums/images/common/back.gif
如果你的第二条比第一条快,说明你索引没建好。

索引要建在 ID, title 上,而不是分开建。

索引要建在 ID, title 上 这是为何,不太明白

pp18180058 发表于 2008-12-12 09:43:59

原帖由 tboqi 于 2008-12-12 00:08 发表 http://codeigniter.org.cn/forums/images/common/back.gif
能达到0.43秒的那个兄弟是高手,你问他吧,我对优化不熟 ...


晕~~~那是楼主~~
页: [1] 2 3 4
查看完整版本: Hex来~~mysql查询优化问题