一、两种scaling方式
1,Vertical partitioning,生成的segments称为partitions
2,Horizontal federation,生成的segments称为shards
二、Storage engines
1,MyISAM
IBM开发的ISAM(Indexed Sequential Access Method)的扩展,是MySQL默认的storage engine
MyISAM由三个文件组成,.frm文件存储table定义,.MYD文件存储row data,.MYI文件存储索引
MyISAM使用table-level locking,三种lock类型,READ LOCAL、READ、WRITE
MyISAM不支持transaction
MyISAM的一个特性FULLTEXT索引:
mysql> SELECT * FROM articles WHERE MATCH (title,body)
-> AGAINST ('+foo -"bar baz"' IN BOOLEAN MODE);
MyISAM使用R-Tree索引支持GIS(geographical and spatial)
2,InnoDB
InnoDB完全支持ACID(atomicity, consistency, isolation, durability)
InnoDB支持transaction
InnoDB使用MVCC(Multi-Versioned Concurrency Control)支持row-level locking,concurrency支持很好
InnoDB支持foreign keys
InnoDB使用B-tree和clustered primary keys来存储索引
InnoDB tables中的row data根据primary key排序来存储,按顺序检索速度快
3,Berkeley DB
BDB数据库由成对的key、value组成,每个row存储为一个唯一的key、value对,按key检索速度快
BDB支持transaction和page-level locking
4,MEMORY
数据存储在内存中,不会持久化到硬盘
速度快,对临时表非常有用
三、MySQL备份
MySQL支持replication来帮助我们scale reads
1,Master-Slave Replication
Master: Reads and writes
|
| Replication
|
Slave、Slave、Slave... : Reads
可以很好的scale read capacity,但是不能scale write capacity
2,Tree Replication
Master: Reads and writes
|
| Replication
|
Slave/Master、Slave、Slave... : Reads
|
| Replication
|
Slave、Slave、Slave... : Reads
可以将一部分数据备份到Slave/Master中以增加频繁读取部分数据的Reads capacity
3,Master-Master Replication
Master: Reads and writes
|
| Replication
|
Master: Reads and writes
这种备份方式可以链成环,还可以为每个Master建立Slave以增强Reads capacity
以上各种备份均可能有Replication Lag和Stale read的问题
四、数据库Partitioning
数据库备份只能增加读性能而不能很好的增加写性能,所以引入数据库Partitioning
有两种方式:纵向(Clustering)和横向(Federation)
1,Clustering
Large database with 6 tables
| |
X
Cluster with 2 tables Cluster with 2 tables Cluster with 2 tables
缺点是维护困难,同时会增加连接数,这种Partitioning方式的scaling能力有限
2,Federation
MySQL5的NDB存储引擎尝试在内部实现横向Partitioning而我们不用更改程序逻辑
Oracle的RAC(Real Application Clusters)做同样的事情,只不过价钱太贵,$25,000/processor
SQL Server也有同样的实现,但是除了速度较慢外,你只能用Windows,而且价钱也是高达$30,000/processor
The key to avoiding cross-shard queries is to federate your data in such as way that all the records you need to fetch together reside on the same shard.
例如,一个页面中需要显示User的Profile和Comments,我们可以将User表与Comments表中相关的数据放在一个shard中
Application logic
|
|
Federation logic(Middleware)
|
|
Shard Shard Shard
当我们知道一个User的ID来查找User的Profile和Comments信息时,我们将User的ID传递给Middleware,Middleware知道去哪里查找User的Profile和Comments数据,然后Middleware来take care返回正确的数据给应用层
应用层不用知道有多少shards、数据在shards之间怎样划分、User数据被赋到哪个shard,一切都是透明的
分享到:
相关推荐
This provides unique insight into the challenges of scaling web databases, which in turn has driven the development of MySQL Cluster, integrating key technologies to enable the scaling of rapidly ...
总之,《MySQL Scaling and High Availability Architectures》为我们提供了宝贵的指导思想和技术实践,帮助我们构建稳定高效且可扩展的MySQL架构。通过对这些原理的理解和实践,可以有效地应对互联网应用所面临的...
开源项目-youtube-vitess.zip,Vitess is a storage platform for scaling MySQL. Brought to you by YouTube/Google.
大学生心理咨询平台 免费JAVA毕业设计 2024成品源码+论文+录屏+启动教程 启动教程:https://www.bilibili.com/video/BV1jKDjYrEz1 项目讲解视频:https://www.bilibili.com/video/BV1Tb421n72S 二次开发教程:https://www.bilibili.com/video/BV18i421i7Dx
石墨烯Tamm共振生物传感器建模:Comsol模型应用与实践,石墨烯激发Tamm共振生物传感器的建模-comsol模型 ,关键词:石墨烯;Tamm共振;生物传感器;建模;comsol模型;,石墨烯Tamm共振生物传感器Comsol建模研究
games101-作业2
"LabVIEW声卡数据采集处理系统:参数设置与存储功能实现及频域分析、滤波处理实验报告",LabVIEW以声卡为数据采集设备开发数据采集处理系统。 具备声卡参数设置,实现文件自动存储、以及文件手动存储两种功能,进行采集数据的分析,包括频域分析,滤波处理等功能; 程序+实验报告 ,LabVIEW; 声卡数据采集; 数据处理系统; 参数设置; 文件存储; 频域分析; 滤波处理; 程序; 实验报告,LabVIEW声卡数据采集处理系统:声卡参数设置与多种存储功能的分析系统
基于微信小程序的志愿服务管理系统 免费JAVA毕业设计 2024成品源码+论文+录屏+启动教程 启动教程:https://www.bilibili.com/video/BV1jKDjYrEz1 项目讲解视频:https://www.bilibili.com/video/BV1Tb421n72S 二次开发教程:https://www.bilibili.com/video/BV18i421i7Dx
"物元可拓评价法Excel模板,详尽实用教程,附视频解析与参考文章,助您轻松操作、精准评价",物元可拓评价法模板,Excel版, 内含视频讲解,参考lunwen,简单易懂易操作 ,物元可拓评价法模板; Excel版; 内含视频讲解; 参考论文; 简单易懂易操作,"物元可拓评价法Excel模板:视频详解,参考论文,易学易用"
深入探究PEMFC燃料电池Comsol模型:综合考虑液态水、膜态水与反应热效应的仿真分析与实践教程电子版,PEMFC燃料电池comsol模型,考虑液态水、膜态水、反应热,附带燃料电池仿真教材电子版。 ,PEMFC燃料电池; Comsol模型; 液态水; 膜态水; 反应热; 燃料电池仿真; 仿真教材电子版,"PEMFC燃料电池Comsol液水反应热模型及仿真教材电子版"
css笔记-简单练习-实现简单网页布局
"深入探究Comsol流固耦合注浆技术:达西定律模块与固体力学模块的联合应用",Comsol流固耦合注浆 采用达西定律模块及固体力学模块,通过建立质量源项、体荷载等实现上述考虑渗流场与结构场流固耦合理论方程的嵌入。 附带参考lunwen ,Comsol;流固耦合注浆;达西定律模块;固体力学模块;渗流场;结构场流固耦合理论方程;质量源项;体荷载;参考论文,Comsol流固耦合注浆技术:达西定律与固体力学模块的应用
基于Comsol的热流耦合拓扑优化:双目标函数平均温度与功率耗散的综合优化研究,comsol 热流耦合拓扑优化。 双目标函数采用平均温度和功率耗散。 ,comsol;热流耦合;拓扑优化;双目标函数;平均温度;功率耗散,Comsol双目标热流耦合拓扑优化技术
智能移车系统的设计与实现.pdf
httpd24-mod_session-2.4.6-18.el6.centos.alt.x86_64.rpm
COMSOL电池模型计算的深入探讨:Nernst-Planck方程的应用与解析,comsol电池模型的计算 Nernst-Planck ,comsol;电池模型;计算;Nernst-Planck,"Comsol电池模型Nernst-Planck计算解析"
《基于四旋翼模型预测控制的线性与非线性MPC轨迹跟踪仿真对比研究》,线性与非线性MPC控制的四旋翼轨迹跟踪仿真对比研究【含说明文档】 [1]描述:利用已有的四旋翼运动学与动力学模型,建立MIMO状态空间模型,包括非线性模型与简化后的线性模型,并引入约束MPC控制,分别设计线性MPC控制器与非线性MPC控制器。 跟踪问题就是找到一个合适的控制输入,使得跟踪误差最小。 [2]说明文档内容: (1)基于状态空间模型预测控制器设计 (2)为了结合模型预测控制,将获得的四旋翼数学模型转化为状态空间模型 (3)基于四旋翼状态方程的线性MPC算法推导 (4)基于四旋翼非线性MPC算法推导 (5)线性MPC实现四旋翼路径跟踪仿真分析 ,关键词:四旋翼;MPC控制;轨迹跟踪;线性模型;非线性模型;状态空间模型;约束MPC;控制输入;预测控制器设计;路径跟踪仿真对比研究。,四旋翼轨迹跟踪:线性与非线性MPC控制仿真对比研究
LNG低温管道预冷及热应力分析.pdf
单片机常用芯片和器件手册
面向网络入侵检测的反向综合学习粒子群优化算法研究.pdf