免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 4300 | 回复: 20
打印 上一主题 下一主题

【已解决】mysql查询比较慢,麻烦大家帮忙看看可还有优化的空间? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-04-20 10:54 |只看该作者 |正序浏览
本帖最后由 cenalulu 于 2012-05-11 09:55 编辑

  数据表使用的myisam引擎,每天8kw的数据存放在一个表中

表中有开始和结束时间,如下

`stime` datetime NOT NULL,
`etime` datetime NOT NULL,

现在需要将一段时间内的记录找出来,

比如stime>'2012-04-20 10:00:00' and etime<'2012-04-20 12:00:00'


当前的情况就是这样查速度会比较慢,大概要10分钟左右,

不知道myql关于时间的处理,可有优化的方法?求大神指教。

论坛徽章:
8
综合交流区版块每周发帖之星
日期:2015-12-02 15:03:53数据库技术版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每日发帖之星
日期:2015-09-14 06:20:00金牛座
日期:2014-10-10 11:23:34CU十二周年纪念徽章
日期:2013-10-24 15:41:34酉鸡
日期:2013-10-19 10:17:1315-16赛季CBA联赛之北京
日期:2017-03-06 15:12:44
21 [报告]
发表于 2012-05-04 11:38 |只看该作者
转为timestamp后添加组合索引就应该行的

论坛徽章:
0
20 [报告]
发表于 2012-04-23 10:08 |只看该作者
本帖最后由 龙雪刚 于 2012-04-23 10:10 编辑

datetime,timestamp本身在mysql内部就是用整数来存的,所有没有必要转换成整数。
datetime占用8字节,timestamp占用四字节。换成timestamp索引大小要减少一半,但它能表示的最大时间为2038年。

论坛徽章:
13
15-16赛季CBA联赛之同曦
日期:2016-01-28 19:52:032015亚冠之北京国安
日期:2015-10-07 14:28:19NBA常规赛纪念章
日期:2015-05-04 22:32:03处女座
日期:2015-01-15 19:45:44卯兔
日期:2014-10-28 16:17:14白羊座
日期:2014-05-24 15:10:46寅虎
日期:2014-05-10 09:50:35白羊座
日期:2014-03-12 20:52:17午马
日期:2014-03-01 08:37:27射手座
日期:2014-02-19 19:26:54子鼠
日期:2013-11-30 09:03:56狮子座
日期:2013-09-08 08:37:52
19 [报告]
发表于 2012-04-22 18:14 |只看该作者
高手就是多阿,学到了!

论坛徽章:
0
18 [报告]
发表于 2012-04-21 11:52 |只看该作者
能否用int来存时间戳呢?datetime这个如果用>,<之类的,他会一些函数的转换

论坛徽章:
0
17 [报告]
发表于 2012-04-21 10:04 |只看该作者
谢谢yeehya 顶贴

谢谢ooooldman 和 kerlion

现在的解决方法是按每天24小时分成24个区,
时间去掉data,将时分秒转换成秒数,用整型保存,并建立索引。

现在的查询速度可以达到5s以内了。

That is all...

论坛徽章:
0
16 [报告]
发表于 2012-04-20 13:22 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
15 [报告]
发表于 2012-04-20 12:59 |只看该作者
ooooldman 发表于 2012-04-20 12:57
不加索引,会回表,你这样好歹走索引rang


good..

论坛徽章:
0
14 [报告]
发表于 2012-04-20 12:57 |只看该作者
不加索引,会回表,你这样好歹走索引rang  

论坛徽章:
0
13 [报告]
发表于 2012-04-20 12:54 |只看该作者
kerlion 发表于 2012-04-20 12:50
每天8000W,你的表现在又多大,2小时有750W行数据罗
如果没分区,stime, etime上有索引,我相信MyISAM快!


data文件有5G,索引文件有0.7G

请假下,

mysql对于where中对于<或者>这种条件表达式,索引会有效果吗?
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP