时间:2021-07-01 10:21:17 帮助过:17人阅读
数据的切分分为两种:
l 垂直切分:按照业务模块进行切分,将不同模块的表切分到不同的数据库中。
l 水平切分:将一张大表按照一定的切分规则,按照行切分到不同的表或者不同的库中。
垂直分表定义 :将一个表按照字段分成多表,每个表存储其中一部分字段。
它带来的提升是 :
1.为了避免IO争抢并减少锁表的几率,查看详情的用户与商品信息浏览互不影响。
2.充分发挥热门数据的操作效率,商品信息的操作的高效率不会被商品描述的低效率所拖累。
垂直分库是指按照业务将表进行分类,分布到不同的数据库上面,每个库可以放不同的服务器上,
它带来的提升是 :
1.解决业务层面的耦合,业务清晰
2.能对不同业务的数据进行分级管理、维护、监控、扩展等
水平分表是在同一个数据库内,把同一个表的数据按一定规则拆到多个表中。
它带来的提升是 :
1.优化单一表数据量过大而产生的性能问题
2.避免IO争抢并减少锁表的几率
库内的水平分表,解决来单一表数据量过大的问题,分出来的小表中只包含一部分数据,从而使得单个表的数据量变小,提高检索性能。
水平分库是把同一个表的数据按一定规则拆分到不同的数据库中,每个库可以放不同的服务器上。
1.解决来单库大数据,高并发的性能瓶颈。
2.提高来系统的稳定性及可用性。
稳定性体现在IO冲突减少,锁定减少,可用性指某个库出问题,部分可用。
简单的说,MyCAT就是:
·一个彻底开源的,面向企业应用开发的“大数据库集群”
·支持事务、ACID、可以替代Mysql的加强版数据库
·一个可以视为“Mysql”集群的企业级数据库,用来替代昂贵的Oracle集群
·一个融合内存缓存技术、Nosql技术、HDFS大数据的新型SQL Server
·结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品
·一个新颖的数据库中间件产品
MyCAT的目标是:低成本的将现有的单机数据库和应用平滑迁移到“云”端,解决数据存储和业务规模迅速增长情况下的数据瓶颈问题。
l Schema:由它指定逻辑数据库
l Table:逻辑表
l DataNode:真正存储节点
l DataHost:真正的数据库主机
l 跨库join问题
* 通过业务分析,将不同库的join查询拆分成多个select
* 建立全局表(每个库都有一个相同的表)
* 冗余字段(不符合数据库三范式)
* E-R分片(将有关系的记录都存储到一个库中)
* 最多支持跨两张表跨库的join
l 分布式事务(弱事务)
* 强一致性事务(同步)
* 最终一致性事务(异步思想)
l 分布式主键
* redis incr命令
* 数据库(生成主键)
* UUID
* snowflake算法
l 海量数据存储
l 查询优化
MySQL分库分表之MyCat实现
标签:扩展 应用开发 企业 简单 命令 sch ora 支持 内存缓存