国产成人AV无码一二三区,少女1到100集,国产精品久久久久精品综合紧,巜公妇之诱感肉欲HD在线播放

文章 > MySQL > mysql如何分表

mysql如何分表

头像

yang

2020-04-13 10:57:022836浏览 · 0收藏 · 0评论

分表的原因:

当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死在那儿了。分表的目的就在于此,减小数据库的负担,缩短查询时间。

分库分表有垂直切分和水平切分两种:

1、依照不同的表(或者Schema)来切分到不同的数据库(主机)之上,这样的切分称之为数据的垂直(纵向)切分。

2、依据表中的数据的逻辑关系,将同一个表中的数据依照某种条件拆分到多台数据库(主机,当然也可能是同一个数据库)上面。这样的切分称之为数据的水平(横向)切分。

数据的垂直切分

将数据库想象成由非常多个一大块一大块的“数据块”(表)组成,我们垂直的将这些“数据块”切开,然后将他们分散到多台数据库(主机)上面,这样的切分方法就是一个垂直(纵向)的数据切分。

数据的水平切分

数据的垂直切分基本上能够简单的理解为依照表依照模块来切分数据,而水平切分就不再是依照表或者是功能模块来切分了。一般来说,简单的水平切分主要是将某个访问极其频繁的大表再依照某个字段的某种规则来分散到多个表之中。每一个表中包括一部分数据。

简单来说,就是将表中的某些行切分到一个数据库(表),而另外的某些行又切分到其它的数据库(表)中。当然,为了能够比较容易的判定各行数据被切分到哪个数据库(表)中了,切分总是都须要依照某种特定的规则来进行的。

水平分库分表的切分规则主要包括如下几种:

按号段分

user_id为区分,1~1000的对应DB1,1001~2000的对应DB2,以此类推;

优点:可部分迁移

缺点:数据分布不均

hash取模分:

对user_id进行hash,然后用一个特定的数字,比如应用中需要将一个数据库切分成4个数据库的话,我们就用4这个数字对user_id的hash值进行取模运算,也就是user_id%4,这样的话每次运算就有四种可能:结果为0的时候对应DB1;结果为1的时候对应DB2;结果为2的时候对应DB3;结果为3的时候对应DB4,这样一来就非常均匀的将数据分配到4个DB中。如上图所示。

优点:数据分布均匀

缺点:数据迁移的时候麻烦,不能按照机器性能分摊数据

在认证库中保存数据库配置

建立一个DB,这个DB单独保存user_id到DB的映射关系,每次访问数据库的时候都要先查询一次这个数据库,以得到具体的DB信息,然后才能进行我们需要的查询操作。

优点:灵活性强,一对一关系

缺点:每次查询之前都要多一次查询,性能大打折扣

其他方式

1)按照地理区域:比如按照华东,华南,华北这样来区分业务。

2)按照时间切分,就是将6个月前,甚至一年前的数据切出去放到另外的一张表,因为随着时间流逝,这些表的数据被查询的概率变小,所以没必要和“热数据”放在一起,这个也是“冷热数据分离”。

推荐:MySQL教程

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

日韩电影在线观看高清版电视剧| 丈夫不在的日子中字头| CSGO暴躁阿姨高清大片1-4..| 淑芬两腿间又痒又疼的原因| 东北娘们国语版免费播放| 杨贵妃(台湾绝版)| 校长办公室莹莹岔开腿呻吟AV| 成全在线观看免费全集高清| MIAKHALIFA| 《喂奶人妻厨房HD》| 法国《监狱伦理3》| 男人添女人荫道口视频| 把腿扒开让我添30分钟| 吻戏原声 哔哩哔哩| 宝贝今天可不可以不带小雨伞小说 | 亚洲中文字幕| 公司企业文化展示墙| 酒鬼酒股票| 120分钟做爰A片免费| 憋尿白丝小肚子凸起高冷知乎 | BOBO浏览器老司机模式改版特..| 星空无限MV国产剧入选精彩| 姜维| 小正太主动要求戴肛塞尾巴的小猫 | 年轻的母亲在线观看完整版刘海的.. | 暴躁少女零九CSGO| 白丝| 灭火宝贝2:决战丛林| 女人被男人进入后的心理变化 | 夹腿高潮后注意力不集中能恢复吗| 日韩AV无码-区二区三区96| 法国色情巜监狱宝贝3| 续父开续女包小芳的小说破 | 教练在泳池下添我做爰| 窝窝影院在线观看免费播放电视剧| 黑料爆料一区二区三区 | 桃色公寓| 《办公室高潮秘书2》| 未满十八岁请自动离开的英语| 省委书记和他的秘书们| 三叶草M码和欧洲码区别