再次提问php+mysql大数据量的问题,如何优化排序!

number123456 2009-11-11 06:20:48
http://topic.csdn.net/u/20091110/15/8f32b08a-4d69-4ea6-8f08-58aaf9f7e51e.html

前两天提问的,数据库中30多W条数据打不开页面,后来加上索引,基本上解决,但是经过反复测试,发现两个问题,
第一个问题是,只要SQL语句中,某个字段查询值带3就会超慢 ,很奇怪的问题,不知道为什么。
第二个问题是,因为业务需要,要求对数据进行排序(至少要按时间倒序),可是加上排序,速度又慢下来了,即使通过MYSQL执行也一样,超慢。

请问谁知道怎么能对排序这部份优化处理,MYSQL或PHP中都可以。
...全文
456 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
number123456 2009-11-13
  • 打赏
  • 举报
回复
还有哪位朋友知道什么办法吗?
alandy 2009-11-13
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 garcon1986 的回复:]
引用 18 楼 alandy 的回复:
LZ别先费劲了,我的库进20W就已经上搜索引擎了。回去研究下SPHINX,百万级数据查询毫秒之内。两年前我也是因为组合查询太慢,不得不引进搜索引擎,很好用的!

sphnix 和 sphider的区别能讲下不?
[/Quote]

回网友,这两个没有什么可比性.SPHINX是解决程序与DATABASE频繁调用导致慢甚至死机瓶颈,而后者主要功能类似ALEXA.
ACMAIN_CHM 2009-11-13
  • 打赏
  • 举报
回复
从EXPLAIN结果很显然,没有利用索引!

show index from xxtablename;

贴一下你的结果。请直接贴文本而不是图片。
garcon1986 2009-11-13
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 alandy 的回复:]
LZ别先费劲了,我的库进20W就已经上搜索引擎了。回去研究下SPHINX,百万级数据查询毫秒之内。两年前我也是因为组合查询太慢,不得不引进搜索引擎,很好用的!
[/Quote]
sphnix 和 sphider的区别能讲下不?
alandy 2009-11-13
  • 打赏
  • 举报
回复
LZ别先费劲了,我的库进20W就已经上搜索引擎了。回去研究下SPHINX,百万级数据查询毫秒之内。两年前我也是因为组合查询太慢,不得不引进搜索引擎,很好用的!
foolbirdflyfirst 2009-11-12
  • 打赏
  • 举报
回复
试下建个(channel,id)的联合索引,看能不能消掉using filesort.
还有where后面的条件,既然是联表,最好加上具体的表别名.

where a.channel=1 and a.node like '|2|%' order by a.id desc
北辰猫咪 2009-11-12
  • 打赏
  • 举报
回复
学习
number123456 2009-11-12
  • 打赏
  • 举报
回复
不好意思,各位,上午出去办事!刚回来!
我的表结构
create table ch_news(
id int(10) unsigned NOT NULL auto_increment,
channel int(10),
classid int(10),
node varchar(255),
istop int(5),
iscommend int(5),
hits int(10),
…………
)

索引,news_channel_node on news (channel,node)

view news :
select a.*,b.title as classname from news as a inner join class as b on a.classid=b.id where channel=1 and node like '|2|%' order by id desc
(class 为分类表,有标题,图片,简介等信息)

explain:
阿_布 2009-11-12
  • 打赏
  • 举报
回复
lz跑了
wqli07 2009-11-12
  • 打赏
  • 举报
回复
没做过 想学习 帮你顶
foolbirdflyfirst 2009-11-12
  • 打赏
  • 举报
回复
所以DBA工资相对高不少啊,呵呵.
程序猿之殇 2009-11-12
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 foolbirdflyfirst 的回复:]
引用 7 楼 jakey9826 的回复:
引用 5 楼 foolbirdflyfirst 的回复:
LZ应贴出更详尽的信息,让mysql版主ACMAIN_CHM给你号号脉.


explain  是好东西!

是啊,explian出来的各列信息够写一本书了.
[/Quote]
大数据优化,的确是个比较复杂的事情!
foolbirdflyfirst 2009-11-12
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 jakey9826 的回复:]
引用 5 楼 foolbirdflyfirst 的回复:
LZ应贴出更详尽的信息,让mysql版主ACMAIN_CHM给你号号脉.


explain  是好东西!
[/Quote]
是啊,explian出来的各列信息够写一本书了.
程序猿之殇 2009-11-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 foolbirdflyfirst 的回复:]
LZ应贴出更详尽的信息,让mysql版主ACMAIN_CHM给你号号脉.

[/Quote]
explain 是好东西!
mingfish 2009-11-12
  • 打赏
  • 举报
回复
菜鸟学习中,帮顶一下
foolbirdflyfirst 2009-11-12
  • 打赏
  • 举报
回复
LZ应贴出更详尽的信息,让mysql版主ACMAIN_CHM给你号号脉.
babysc1 2009-11-12
  • 打赏
  • 举报
回复
贴出来东西 才知道怎么改进啊 你不会只想问的是 思路想法吧
number123456 2009-11-12
  • 打赏
  • 举报
回复
这里只是列举了一个ID,但我需要根据实际情况,要order by 别的字段,同样是出现这种问题,
那是不是我要把那些全加上索引?channel是固定要查询的字段
ACMAIN_CHM 2009-11-11
  • 打赏
  • 举报
回复
[Quote]第二个问题是,因为业务需要,要求对数据进行排序(至少要按时间倒序),可是加上排序,速度又慢下来了,即使通过MYSQL执行也一样,超慢。
[/Quote]
优化是需要考虑的东西比较多,需要分析你的数据,索引。

提供你的 show create table xx, show index from xxx, explain select ...信息。
ACMAIN_CHM 2009-11-11
  • 打赏
  • 举报
回复
[Quote]第一个问题是,只要SQL语句中,某个字段查询值带3就会超慢 ,很奇怪的问题,不知道为什么。[/Quote]

你的SQL语句是什么?表结构是什么?
另外提供一下 explain select .... 的信息。
加载更多回复(1)

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧