分库分表
2018-09-29 14:31:15 0 举报
AI智能生成
分库分表
作者其他创作
大纲/内容
为什么要分库分表?
数据库的性能瓶颈
连接数
处理能力
存储容量
数据库的优化方案
SQL优化
批处理
索引
分区
缓存
主从复制
读写分离
主写
从读
集群
向上扩展
分库分表
大数据 NoSQL
什么时候考虑切分
能不切分尽量不切分
数据量过大
单表行数 500万~1000万
单表存储 <2G
数据量增长过快
如商场活动期间订单爆炸增长
需要对某些字段进行切分
出于安全性和可用性考虑
切分的类型
垂直切分
垂直分库
垂直分表
水平切分
水平分表
类似于分区
水平分库分表
数据切分后的问题以及解决方案
事务一致性问题
跨节点的关联查询的问题
全局表
不会变化的公共表
字段冗余
ER分片(订单表、订单明细表)
数据组装
跨节点的排序、分页、函数的问题
结果汇总作二次计算
全局主键的问题
UUID
无序
数据表维护主键
并发性能低
开源的ID生成系统
数据迁移、扩容的问题
分库分表中间件Mycat
术语
主机/实例
物理数据库
物理表
分片(切分)
分片节点
分片键
分片算法
逻辑表
逻辑数据库
配置文件
server.xml
用户、密码、权限
schema.xml
逻辑库、逻辑表
结构
schema
table1
dataNode 分布的节点
rule 分片的策略
table2
dataNode
name
dataHost
database
dataHost
heartbeat
writeHost
数据源配置
readHost
rule.xml
分片策略
rang-long范围分片
mod-long取模分片
mod-long + ER分片
父表-子表(订单表-订单详情表)
确保关联的父表和子表的记录在同一个节点
范围取模算法(先范围再取模)
取模范围算法(先取模再范围)
结构
function
对应java接口
txt
策略配置
指定默认节点
0 条评论
下一页