首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • mysql 查詢速度很慢....... [已结贴,结贴人:dy942]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-03 12:53:07 楼主
    select so.userid,sum(so.price) as price,count(so.orderid) as num from so
    where so.deleteflag = 0  and so.createdate>='2008-05-01 00:00:00'
      and so.createdate <'2008-06-01 00:00:00' group by so.userid order by num desc

    这个是SQL语句,
    数据总共只有6万条的样子,但是查询的速度很慢,有什么方法可以让速度变快?
    30  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • liuyann
    • 等级:
    发表于:2008-05-03 13:49:261楼 得分:4
    分别建索引在
    deleteflag
    createdate
    ==== ====
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-03 14:14:342楼 得分:0
    沒有人知道啊 哪位大俠幫幫忙啊......
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-03 14:16:303楼 得分:0
    liuyann  在createdate 上已經建了索引了,另外一個deleteflag 是狀態位也要建嗎?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • liuyann
    • 等级:
    发表于:2008-05-03 14:57:194楼 得分:4
    group by so.userid
    之后的数据量是多少?多少记录?
    ==== ====
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-03 15:08:545楼 得分:0
    136條..
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • liuyann
    • 等级:
    发表于:2008-05-03 16:21:406楼 得分:5
    136條..

    应该问题不在GROUP BY 后的ORDER,


    userid有INDEX吗?
    ==== ====
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-04 08:57:577楼 得分:4
    1、建立索引
    2、加大tmp_table_size系统变量的值。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-04 15:45:118楼 得分:5
    mysql>explain select so.userid,sum(so.price) as price,count(so.orderid) as num from so
    where so.deleteflag = 0  and so.createdate>='2008-05-01 00:00:00'
      and so.createdate <'2008-06-01 00:00:00' group by so.userid order by num desc ;
    执行后,看看有没有可以优化的地方。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-04 16:43:359楼 得分:4
    把SUM和COUNT分开操作,也就是写成两条SQL语句,看看速度怎么样?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-04 20:17:5510楼 得分:4
    唉,实在搞不定,就把8楼的结果贴出来。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-06 13:52:0411楼 得分:0
    呵呵 我帮别人问的
    已经解决了。。。谢谢大家
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved