恩.刚刚开始的时候是因为这篇文章 导致搜索了一下mysq的分区视图,发现了5.1已经支持了.于是就有了下面痛苦的经历:
刚刚开始的时候和教程里进行的都一样.直到下面的时候才想起来记录一下.哈哈.前面的过程唯一值得一提的是存储过程执行的时候.好像CPU那个累啊.也难怪8000000的数据插入…不累死才怪.建立完数据下面就开始了..
mysql> use test Database changed mysql> insert into no_part_tab select * from part_tab; Query OK, 8000000 rows affected (15.56 sec) Records: 8000000 Duplicates: 0 Warnings: 0哈哈哈,我的机器还算不错呢.例子里用了51.59 sec呢 恩不过头一次看到insert还可以这么写…学校里可从来没有教过….
然后就可以看到疯狂的结果了:
mysql> select count() from part_tab where c3 > date ‘1995-01-01’ and c3 < date ‘1995-12-31’; +———-+ | count() | +———-+ | 795181 | +———-+ 1 row in set (0.84 sec)
mysql> select count() from no_part_tab where c3 > date ‘1995-01-01’ and c3 < date ‘1995-12-31’; +———-+ | count() | +———-+ | 795181 | +———-+ 1 row in set (6.64 sec)
date不是一个函数吗?为什么没有()呢?…奇怪ing~~~ PS:Navicat里面的Console执行的结果是没有时间显示的..比较郁闷T_T
教程里还可以这样来查看是否优化:
mysql> explain select count(*) from no_part_tab where -> c3 > date ‘1995-01-01’ and c3 < date ‘1995-12-31’\G 这里的explain在这里有解释
如果在SELECT语句前放上关键词EXPLAIN,MySQL将解释它如何处理SELECT,提供有关表如何联接和联接的次序。 貌似可以用这个优化查询过程?
另外也可以看到mysq目录里的文件大小:
2007-10-20 12:41 8,608 part_tab.frm 2007-10-20 12:41 68 part_tab.par 2007-10-20 12:41 1,024 part_tab#P#p0.MYI 2007-10-20 12:41 0 part_tab#P#p0.MYD 2007-10-20 12:59 1,024 part_tab#P#p1.MYI 2007-10-20 12:59 25,550,656 part_tab#P#p1.MYD 2007-10-20 12:59 1,024 part_tab#P#p2.MYI 2007-10-20 12:59 25,656,512 part_tab#P#p2.MYD 2007-10-20 12:59 1,024 part_tab#P#p3.MYI 2007-10-20 12:59 25,586,880 part_tab#P#p3.MYD 2007-10-20 12:59 1,024 part_tab#P#p4.MYI 2007-10-20 12:59 25,585,696 part_tab#P#p4.MYD 2007-10-20 12:59 1,024 part_tab#P#p5.MYI 2007-10-20 12:59 25,585,216 part_tab#P#p5.MYD 2007-10-20 12:59 1,024 part_tab#P#p6.MYI 2007-10-20 12:59 25,655,740 part_tab#P#p6.MYD 2007-10-20 12:59 1,024 part_tab#P#p7.MYI 2007-10-20 12:59 25,586,528 part_tab#P#p7.MYD 2007-10-20 12:59 1,024 part_tab#P#p8.MYI 2007-10-20 12:59 25,586,752 part_tab#P#p8.MYD 2007-10-20 12:59 1,024 part_tab#P#p9.MYI 2007-10-20 12:59 25,585,824 part_tab#P#p9.MYD 2007-10-20 12:59 1,024 part_tab#P#p10.MYI 2007-10-20 12:59 25,620,192 part_tab#P#p10.MYD 2007-10-20 12:41 1,024 part_tab#P#p11.MYI 2007-10-20 12:41 0 part_tab#P#p11.MYD 2007-10-20 12:42 8,608 no_part_tab.frm 2007-10-20 12:59 1,024 no_part_tab.MYI 2007-10-20 12:59 255,999,996 no_part_tab.MYD
下面说说我看到的注意: 1: 这里 刚刚看到了一个注意:
mysql优化器支持以下两种内置的日期函数进行分区:
TO_DAYS() YEAR() 上文的例子里就是利用了year.
2: 这里 说关于分区字段,不能是外键和主键.(晕.还不能是外键?这个貌似会有些麻烦的说,实在想要,就要建立个多余字段和外键map下?个人猜想)
暂时就研究到这里了…已经看了一天了T_T.最后还看到了这篇. 介绍的相对来说比较全面.个人还有个疑问就是.如何将分区生成的文件放到不同的磁盘上,毕竟I/O也是要解决的问题之一.昨天回学校的时候看到东软的上网记录的大小也就那么回事.那个服务器和个人计算机差不多-_-!再好的服务器不能很好的利用也是垃圾.当性能问题不能单纯的用添加硬件来解决时,瓶颈也就到了.那也是学生时代能学到的极限了.
最后啰嗦一句.安装mysql有时候也会很闹心的说.这次安装5.1就因为卸载完之后的安装目录里,存有文件导致密码问题. 啊,最近写这些东西都是比较混乱的说…貌似就我一个人能看懂…各位看客多多谅解吧.
关联记录
暂无可公开显示的关联评论。评论与回复仍保存在本私有归档的
comments/目录;阅读界面默认隐藏邮箱、IP 和用户代理信息。