【百度分享】MySQL 5.1分区技术初探(六)

dubai12 2010-08-11 06:09:49
加精
3.3 连接查询
  同样地,对于连接查询,在有没有分区的条件下,将有性能3倍左右的差距。对于更大的数据量,可能会有更大的性能差距。SQL如下:
  select count(*) from salaries s left join employees e on s.emp_no=e.emp_no where s.from_date between '1999-01-01' and '1999-12-31' ;

无采用分区 采用分区
3.4 删除查询
  为了删除1998年的销售数据,那么在有分区情况下可以不利用delete查询快速地完成垃圾数据的清理。

可知,对于有分区的情况下,只需要将某个分区删除掉即可,时间仅为0.05s,相对应原来的2.82s,这个提升是非常高的。    当然,利用分区功能的数据删除之后,数据文件如下:

 那么接下来如果接着插入1998年的数据,数据是否丢失了呢?还是会写不进去?答案也都是否定,它会将数据写入p16分区中。有兴趣的读者可以自己收到试试。
4. 总结和不足
所以,分区的好处有很多:
1. 与单个磁盘或文件系统分区相比,可以存储更多的数据
2. 对于那些已经失去保存意义的数据,通常可以通过删除与那些数据有关的分区,很容易地删除那些数据。
3. 一些查询可以得到极大的优化,如where语句数据可以只保存在一个或多个分区内
4. 涉及到例如SUM() 和 COUNT()这样聚合函数的查询,可以很容易地进行并行处理
5. 通过跨多个磁盘来分散数据查询,来获得更大的查询吞吐量
在设计分区过程中,需要考虑的因素有很多,如:
– 分区的列
– 分区使用的函数,特别为非Integer类型的列
– 服务器性能
– 内存大小
根据分区技术,有一些技巧:
– 若索引的大小 > RAM,考虑选用分区,不采用索引
– 尽量不采用Primary Key做分区的key
– 当CPU性能高的时候,考虑使用Archive存储引擎
– 对于大量的历史数据,考虑使用Archive+PARTITION
–总之,
MySQL分区技术是一种逻辑的水平分表技术;
它只访问需要访问的分区,从而提高性能;
支持range, hash, key, list和复合分区方法;
支持MySQL服务器所支持的任何存储引擎;
除了Key分区方法,Partition的key 必须是整数(或者能转化成整数)。
...全文
1401 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
dengxb 2011-05-25
  • 打赏
  • 举报
回复
henshi bucuo
寒冰2046 2011-05-24
  • 打赏
  • 举报
回复
看完了整个系列,各种收获。
sayunhck 2011-01-26
  • 打赏
  • 举报
回复
谢谢楼主分享,就是有点看不懂。。。难
  • 打赏
  • 举报
回复
VC里,如何连接MySQL数据库?
freefei 2011-01-25
  • 打赏
  • 举报
回复
相当有水准,谢谢分享。
kkkwkp 2011-01-25
  • 打赏
  • 举报
回复
收藏那个下来
yi580 2011-01-24
  • 打赏
  • 举报
回复
谢谢楼主分享,就是有点看不懂。。。难
liyunsheng613 2011-01-24
  • 打赏
  • 举报
回复
哎。数据库方面一直还是短板,不知道怎么处理大数据量啊
ee 2011-01-24
  • 打赏
  • 举报
回复
看了,行。是啊
王向飞 2011-01-23
  • 打赏
  • 举报
回复
xiaocongzhi 2011-01-23
  • 打赏
  • 举报
回复
收着,等K PHP时看
紫色动力 2011-01-22
  • 打赏
  • 举报
回复
是啊是啊
skyaspnet 2011-01-21
  • 打赏
  • 举报
回复
学习下,分区是数据库中提升性能比较好的方法之一,但是也需要设计好分区的原则,这样才有利于未来的扩展需求
xiao_w_xiao 2011-01-21
  • 打赏
  • 举报
回复
多说一些关于实际操作的实例,比如如何进行分区,分区的条件,分区的操作过程等等,谢谢
kuffin 2011-01-21
  • 打赏
  • 举报
回复
感谢楼主分享。
跑跑鱼 2010-10-22
  • 打赏
  • 举报
回复
没用过分区,去搜搜看
iskmilan 2010-10-20
  • 打赏
  • 举报
回复
这些分区方式和存储引擎有关系吗?
phper_cd 2010-08-11
  • 打赏
  • 举报
回复
果然牛叉
Dleno 2010-08-11
  • 打赏
  • 举报
回复
全部收藏,慢慢看

21,886

社区成员

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

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