当前位置: 首页 > news >正文

幸运28网站代理怎么做大兴网站开发公司

幸运28网站代理怎么做,大兴网站开发公司,.win域名做网站怎么样,网站建设人员叫什么首先写在最前面#xff0c;MyCAT1.4的alpha版本已经发布了#xff0c;这里面修复了不少的bug#xff0c;也完善了一细节#xff0c;之前两篇博客已经做了一些修改---------------------------------------------------------------------------------这才是本体~----------…首先写在最前面MyCAT1.4的alpha版本已经发布了这里面修复了不少的bug也完善了一细节之前两篇博客已经做了一些修改---------------------------------------------------------------------------------这才是本体~----------------------------------------------------------------------------------之前已经介绍过了schema的作用了这一篇会把rule和server一起介绍~首先是rule在这个文件里面会详细的制定多种分片的规则这次只抽出一些使用率比较高的方法先上配置文件的内容可以简单看一下在截图的上半部分描述的是rule的定义在下半部分是rule对应的实际切分规则这里总工介绍下面四种切分方式~murmur已坑~-------------------------------------------------------------------------------------------Hash-int---------------------------------------------------------------------------------先看hash-int在这一条切分规则的下面有一个mapfile这代表着这个切分规则是根据partition-hash-int的内容来决定的那么看一下这个文本文件很简单的内容这代表着切分使用的基准列里面值为10000的时候放在第一个DN里面(dn1)值为10010的时候放在第二个DN里面(dn2)可以看一下实际效果看一下MyCAT的Debug日志这两条语句被分配到了dn1和dn2上面数据库里面也插入了相对应的数据那么~问题来了(挖掘机滚粗~)如果插入的数据中基准列的取值不是这个文件里面写明的值会是什么效果直截了当的报错了~好了hash-int的这种切分规则大体上可以理解为枚举分区会比较适合于取值固定的场合比如说性别(0,1)省份(固定值短时间不会收复日本省吧~)渠道商 or 各种平台的ID而且用逗号分隔可以把多个值放在一个分区里面所以可以根据实际的数据量/流量/访问量来综合制定切分策略缺点毕竟不是全能战士╮(╯_╰)╭-------------------------------------------------------------------------------------------range-long---------------------------------------------------------------------------------第二种切分方式range-long仔细一看的话和hash-int是比较像的也是由特定的文件来决定切分策略所以还是去看一下文件的内容从文件内容可以看出这是一种范围切分的方式制定基准列的取值范围然后把这一范围的所有数据都放到一个DN上面这种方式和hash-int基本一致就不截图了(懒癌晚期时间不够了)这种切分策略个人感觉在业务数据库里面的使用场景会少一些因为这种切分方式需要预定好整体的数量这就决定了那种无限增长的数据不能用这个毕竟要改动这个切分策略会很麻烦真要用起来感觉也就对自增主键用然后按照一定的数量来均匀切分比如那种一天固定X条数据的业务(温度采集数据采集之类的情况)然后提前建好多个DN(库)。当然也存在一种潜在的问题如果在短时间发生海量的顺序插入操作而每一个DN(分库)设定的数量比较高(比如说一个DN设定的放1000W条数据),那么在这个时候,会出现某一个DN(分库)IO压力非常高而其他几个DN(分库)完全没有IO操作就会出现类似于DB中常见的热块/热盘的现象而MySQL经常用自增主键所以使得MySQL的表出现大量“顺序”插入的机会会多很多。--------------------------------------------------------------------------------------------mod-long-----------------------------------------------------------------------------------mod-long从mod来看这应该是一种取余数的方法来看一下具体配置的信息count4这是代表着总共把数据切分成四份一般是和具体的DN数量对应从而达到把数据均匀的分布在四个DN上(当然count看一下实际的效果看一下MyCAT的Debug日志看看MyCAT是如何处理的采用这种取余数的方式时这四条数据分别插入了四个DN(库)而且可以看到顺序插入时数据是被均匀的分散在多个DN(库)上面相比较于上面的range的方法这种切分策略会更好的分散数据库写的压力但是问题也很明显一旦出现了范围查询就需要MyCAT去合并结果当数据量偏高的时候这种跨库查询合并结果消耗的时间有可能会增加很多尤其是还出现了order by的时候。所以这种切分策略会比较适合于单点查询的情景比如说.....我也不知道......真的不知道,也许在银行,查询个人账户信息的时候,一些和用户信息的表可以做好冗余,然后利用这种方式来提供更为高效的查询(毕竟银行的用户数量多,恩恩~)--------------------------------------------------------------------------------partition-by-long----------------------------------------------------------------------------------partition-by-long,处于range-long和mod-long之间的一个略微折中的划分策略,具体切分形势依照如下描述:以1024为一个单位,每个DN存放partitionLength数量的数据,且,partitionCount x partitionLength1024看起来有点难以理解,形象点描述的话,以partitionCount(4) x partitionLength(256)为例,sid%10240-255的放在DN1,256-511的放在DN2,以此类推试着以128为偏移值插入了八条数据直接看MyCAT的日志可以看到八条数据均匀的分布在这四个DN里面~值得一提的是这种切分策略也支持非均匀分布~实在是测不动了盗图两张~这两张图基本上也说明白了这种非均匀分布的划分策略重点还是在2x2561x5121024上面~这种划分策略在range-long和mod-long之间取了一个折中点同时也还算是比较灵活可以根据不同的情况进行非均匀划分实际上能应用的场景会稍微多一点吧或者说不少场景都能用一用相对减少了跨DN的情形又把数据比较均匀的切分开来了单点查询也不会太慢。-----------------------------------------------------------------------------------写在最后-------------------------------------------------------------------------------------其实MyCAT支持的切分方式还有不少比如说按照时间的切分策略可以按月按天切分等在这里也没办法把所有的策略都放上来见谅了o(ヘo)实际上从个人的观点来看时间的切分依照数据库本身的分区策略来分也没什么问题半年度季度的数据也还是会需要查询的....PS   _(:з」∠)_真不是懒...可以说MyCAT的分库分表的重点基本全部在这个rule里面体现了表要不要分表的数据怎么切分都是需要根据实际业务来决定充分根据业务的特点去决定最合适的划分策略~下一章预告server对MyCAT调优的主要部分第一篇http://blog.itpub.net/29510932/viewspace-1664499/第二篇http://blog.itpub.net/29510932/viewspace-1667814/转自MySQL分布式集群之MyCAT(三)rule的分析-wangwenan6-ITPUB博客http://blog.itpub.net/29510932/viewspace-1678591/
http://www.huolong8.cn/news/890/

相关文章: