Mycat实践之五:DataNode的分布问题

来源:互联网 发布:php微商城源码 编辑:程序博客网 时间:2024/06/05 19:48

摘自《Mycat权威指南》

 

DataNode代表 MySQL 数据库上的一个 Database,因此一个分片表的 DataNode 的分布可能有以下几种:

  • 都在一个 DataHost 上
  • 在几个 DataHost 上,但有连续性,比如 dn1 到 dn5 在 Server1 上,dn6 到 dn10 在 Server2 上,依次类推
  • 在几个 DataHost 上,但均匀分布,比如 dn1,dn2,d3 分别在 Server1,Server2,Server3 上,dn4 到 dn5 又重复如此

一般情况下,不建议第一种,二对于范围分片来说,在大多数情况下,最后一种情况最理想,因为当一个表的数据均匀分布在几个物理机上的时候,跨分片查询或者随机查询,都是到不同的机器上去执行,并行度最高,IO 竞争也最小,因此性能最好。

当我们有几十个表都分片的情况下,怎样设计 DataNode 的分布问题,就成了一个难题,解决此难题的最好方式是试运行一段时间,统计观察每个 DataNode 上的 SQL 执行情况,看是否有严重不均匀的现象产生,然后根据统计结果,重新映射 DataNode 到 DataHost 的关系。

Mycat1.4 增加了 distribute 函数,可以用于 Table 的 dataNode 属性上,表示将这些 dataNode 在该Table 的分片规则里的引用顺序重新安排,使得他们能均匀分布到几个 DataHost 上:

<tablename="oc_call" primaryKey="ID"dataNode="distribute(dn1$0-372,dn2$0-372)"rule="latest-monthcalldate" />

其中 dn1xxx 与 dn2xxxx 是分别定义在 DataHost1 上与 DataHost2 上的 377 个分片。

 

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 uti 泌尿科常见疾病 老是有想尿尿的感觉 男性婚检项目 北京泌尿科医院排名 男性尿道有分泌物 早晨尿道口有白色分泌物 男性内裤上有白色分泌物 男性慢性尿道炎症状 尿道口白色分泌物是什么 小便有白色混浊物 男性尿道口流白浓 大便用力尿道滴白 尿隐血3+ 尿隐血呈阳性 体检尿隐血 尿隐血加号 尿隐血 阳性 小孩尿隐血 尿隐血是什么 为什么会尿隐血 尿隐血是什么原因引起的 尿隐血偏高 尿隐血10 尿隐血弱阳性什么意思 尿隐血阴性 尿隐血3+严重吗 尿隐血弱阳 尿隐血+-什么意思 尿隐血加减 尿隐血阴性是什么意思 尿常规隐血1 尿隐血弱阳性是怎么回事 尿隐血阳性2+ 尿隐血一个加号 尿隐血微量是什么意思 尿隐血的症状 男性尿常规潜血 尿潜血3加号 尿里面有潜血 尿潜血 弱阳性