分表

mysql 分表分区小记(一)

笑着哭i 提交于 2019-12-04 22:10:12
分表 第一种 是做mysql集群利用mysql cluster ,mysql proxy,mysql replication,drdb等等 第二种 是把访问频繁的且数据量大的表拆成若干小表 第三种 是利用mysql merge存储引擎分表 分区 第一种 RANGE分区:基于属于一个给定连续区间的列值,把多行分配给分区。 第二种 LIST分区:类似于按RANGE分区,区别在于LIST分区是基于列值匹配一个离散值集合中的某个值来进行选择。 第三种 HASH分区:基于用户定义的表达式的返回值来进行选择的分区,该表达式使用将要插入到表中的这些行的列值进行计算。这个函数可以包含MySQL 中有效的、产生非负整数值的任何表达式。 第四种 KEY分区:类似于按HASH分区,区别在于KEY分区只支持计算一列或多列,且MySQL 服务器提供其自身的哈希函数。必须有一列或多列包含整数值。 分表的好处 是提高单表的并发能力当然IO磁盘能力也有所提高 分区的好处 是提供IO磁盘的读写能力 一般访问频繁且数据量大的采用分表 访问一般 数据量大的采取分区 来源: oschina 链接: https://my.oschina.net/u/128179/blog/272448

数据库水平切分的实现原理(分库,分表,主从,集群,负载均衡)

与世无争的帅哥 提交于 2019-12-01 03:34:41
第1章 引言 随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的 互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。通过数据切分来提高网站性能,横向扩展数据层 已经成为架构研发人员首选的方式。水平切分数据库,可以降低单台机器的负载,同时最大限度的降低了了宕机造成的损失。通过负载均衡策略,有效的降低了单台 机器的访问负载,降低了宕机的可能性;通过集群方案,解决了数据库宕机带来的单点数据库不能访问的问题;通过读写分离策略更是最大限度了提高了应用中读取 (Read)数据的速度和并发量。目前国内的大型互联网应用中,大量的采用了这样的数据切分方案,Taobao,Alibaba,Tencent,它们大 都实现了自己的分布式数据访问层(DDAL)。以实现方式和实现的层次来划分,大概分为两个层次(Java应用为例):JDBC层的封装,ORM框架层的 实现。就JDBC层的直接封装而言,现在国内发展较好的一个项目是被称作“变形虫”(Amoeba)的项目,由阿里集团的研究院开发,现在仍然处于测试阶 段(beta版),其运行效率和生产时效性有待考究。就ORM框架层的实现而言,比如Taobao的基于ibatis和Spring的的分布式数据访问 层,已有多年的应用,运行效率和生产实效性得到了开发人员和用户的肯定