文档章节

数据库分表

Huangchp
 Huangchp
发布于 2017/11/03 20:09
字数 495
阅读 52
收藏 0

    当单表但数据库的数据量大时,插入和查询的性能会急剧降低,这时会考虑用到数据库分表,将单一的数据分布到多个数据库表中,MySQL5.1也增加了对单表分区的支持。

一、拆分方法

1、范围法:通过取值范围分表,比如ID列,可以将1-1万,1万-2万存储在两张表中,优点:切分策略简单,扩容简单;缺点:ID必须满足自增,数据量不均匀,查询不均匀。

2、哈希法:通过某列的hash值切分,优点:切分策略简单,数据量均匀,查询均匀;缺点:扩容困难,因为增加一个库时,要从新计算hash值,并且涉及到数据迁移问题。

3、一致性哈希算法也可以达到分表的目的,将数据落到不同的数据库中。

二、拆分后的问题

1、根据拆分列的查询容易,可以轻易知道在什么范围,hash值是什么,就可以找到相应的数据库,但非拆分列查询,如:name=hp,这样可能会遍历每一个库。

2、非拆分列的复杂查询,需要根据具体业务情况,尽量避免这类查询,或对性能要求不高。

三、介绍MySQL水平扩展方案

    MySQL Fabric是Oracle提供的用于辅助进行ha\sharding的工具。

    Fabric由三个组件组成:

    1、fabric 的管理工具(也就是 mysqlfabric)。

    2、fabric nodes,可以启动1到多个node。每个node也是一个进程。用于处理fabric的管理请求、应用的mapping请求。

    3、backstore,它也是一个mysql server,维护了HA Group、Sharding Group。

    其他水平扩展解决方案,Atlas,cobar,TDDL,mycat,heisenberg, Oceanus, vitess。

四、对于这种数据量较大的需求,也可以使用MondoDB这种NoSQL数据库,也提供的很好的可用性和数据分片机制。

© 著作权归作者所有

共有 人打赏支持
Huangchp
粉丝 2
博文 43
码字总数 10066
作品 0
吉林
私信 提问
许剑锋/mybatis-subtable

mybatis-subtable MyBatis分表插件,对MyBatis代码无侵入,不改变对MyBatis的使用习惯。 使用示例 1、mybatis-config.xml配置文件添加插件 2、需要分表的Mapper/Dao类添加注解,使用指定分表...

许剑锋
2017/02/05
0
0
浅谈高性能数据库集群——分库分表

最近学习了阿里资深技术专家李运华的架构设计关于分库分表的教程,颇有收获,总结一下。 本文主要介绍高性能数据库集群分库分表相关理论,基本架构,涉及的复杂度问题以及常见解决方案。 分库...

caison
2018/07/02
0
0
数据库分库分表、读写分离的原理和实现,以及使用场景

为什么要分库分表和读写分离? 类似淘宝网这样的网站,海量数据的存储和访问成为了系统设计的瓶颈问题,日益增长的业务数据,无疑对数据库造成了相当大的负载,同时对于系统的稳定性和扩展性...

游人未归
2018/09/14
0
0
Mysql分表和分区的区别、分库和分表区别

分表和分区的区别: 一,什么是mysql分表,分区 什么是分表,从表面意思上看呢,就是把一张表分成N多个小表,具体请看:mysql分表的3种方法。 什么是分区,分区呢就是把一张表的数据分成N多个...

sailikung
2018/05/01
0
0
【MySQL性能优化】MySQL分库分表与水平分割取模案例(三)

欢迎访问原文: 【MySQL性能优化】MySQL分库分表与水平分割取模案例(三) 分表分库 当项目比较大的时候,基本上都会进行分表分库的 后面就讲讲什么时候需要分库,什么时候需要分表 什么时候需要...

qq_26525215
2018/02/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

带你看数据挖掘与机器学习-厦大EDP上课出勤预测

带你看数据挖掘与机器学习-厦大EDP上课出勤预测 标签: 数据挖掘 特征工程 机器学习 出勤预测 write by xmhexi 2019/3/22 内容提要 首先说明本文是一篇科普文章,通过一个实际案例,帮助理解什...

xmhexi
今天
41
0
IOS  学习记录

1.StackView=>IOS 9及以上支持 2.布局方式: AutoLayout / StackView 堆布局 (线性布局) 3.屏幕适配 (资源分辨率、设计分辨率、屏幕分辨率) Size Class技术 可以针对 屏幕的方向进行设置...

萨x姆
今天
4
0
第四次工业革命:自主经济的崛起

https://36kr.com/p/5170370.html

shengjuntu
昨天
3
0
Cloud Native 与12-Factor

12-Factor(twelve-factor),也称为“十二要素”,是一套流行的应用程序开发原则。Cloud Native架构中使用12-Factor作为设计准则。 12-Factor 的目标在于: 使用标准化流程自动配置,从而使...

waylau
昨天
10
0
java多线程2

“非线程安全”问题存在于“实例变量”中,如果是方法内部的私有变量,则不存在线程安全问题。这是因为方法内部的变量都是私有造成的。 synchronized 获取的都是对象锁。如果多个线程访问多个...

一滴水穿石
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部