基于 MYSQL 的分区分表

2019-06-23  本文已影响0人  Sven_qi

一、为什么什么要分区分表

1.海量数据的产生,需要数据查询和分析,系统响应会变慢,TPS下降,直至服务不可用
2.单个表数据量越大,读写锁,插入操作重新建立索引效率越低,为了支撑高并发、数据量大的问题。

二、分区

定义:就是把一张表的数据分成N个区块,在逻辑上看最终只是一张表,但底层是由N个物理区块组成的

什么时候可以考虑分区?

分区分表的类型

常见分区分表的规则策 (mysql 5.1 )

序号 分区类型 说明 使用频率
1 RANGE分区 基于属于一个给定连续区间的列值,把多行分配给分区 较多
2 LIST分区 类似于按RANGE分区,区别在于LIST分区是基于列值匹配一个离散值集合中的某个值来进行选择 一般
3 HASH分区 基于用户定义的表达式的返回值来进行选择的分区,该表达式使用将要插入到表中的这些行的列值进行计算。这个函数可以包含MySQL 中有效的、产生非负整数值的任何表达式 较多
4 KEY分区 类似于按HASH分区,区别在于KEY分区只支持计算一列或多列,且MySQL 服务器提供其自身的哈希函数。必须有一列或多列包含整数值。 一般

分区分表策略要考虑的问题

三、分库

client 模式

11.jpg

proxy 模式

22.jpg

名词解释

TPS:Transactions Per Second(每秒传输的事物处理个数),即服务器每秒处理的事务数。TPS包括一条消息入和一条消息出,加上一次用户数据库访问。(业务TPS = CAPS(每秒建立呼叫数量) × 每个呼叫平均TPS)
TPS是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。一般的,评价系统性能均以每秒钟完成的技术交易的数量来衡量。系统整体处理能力取决于处理能力最低模块的TPS值。
上一篇 下一篇

猜你喜欢

热点阅读