大佬教程收集整理的这篇文章主要介绍了高性能MySQL(一) 如何做到高扩展性,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
吞吐量: 单位时间内处理的请求数
TPS: 每秒处理的事务数
QPS: 每秒处理的查询次数
1.Shared Everthing
针对单个系统c;完全共享CPU,Memoryc;磁盘系统c;这样并行处理能力最差c;比如sqlserver
2.Shared Nothing
不存在共享资源c;并行和扩展能力更好c;比如hadoop
3.Shared Disk
各个处理单元c;使用私有的CPUc;R_532_11845@emoryc;但是使用共公有的disk
扩展一个点的能力支撑更多的请求c;类似于螳臂当车:
两种方式:
1. 提升硬件性能
2. 提升单机架构性能
读多写少c;用cache;读少写多c;使用消息队列c;异步更新c;比如kafkac;RMQ
分区就是PARTITION, RANGE分区c;就是比如把表的数据按时间分成c;70年代c;80年代c;90年代的数据c;HASH分区c;就是把表的数据根据HASH值的不同分成不同的区
用更多的节点支撑更大的请求c;类似于蚂蚁搬家c;主要有4种方式:
1.主从复制
2.分库分表 (数据分片 sharding)
分库、分表、达到线性扩展的目的
3.数据库中间件
4.集群
使用集群来弥补单机性能的不足(这里忽然想到分布式和集群的区别c;分布式就是不同机器上面部署着不同的服务c;而集群就是不同机器上面部署着相同的服务)
主从复制
是最常用的技术c;可以扩展出很多的从库c;从而减轻主库负担c;能够实现读写分离
缺点:如果写过多c;主库成为性能瓶颈c;从库数据容易不一致
数据分片
1.垂直分片
其实就是按column列分片c;某几列属于同一片c;另外几列属于另一片c;比如把一个表的12列(12个字段)分成3个小片c;每片4列
2. 水平分片
就是不修改表结构c;比如按时间来进行拆分c;比如2021年1月1日之前的数据存在A库c;之后的存在B库
虽然sharding很好用c;但是这样会加大业务代码的复杂性c;而且单个shard失效可能会导致整个系统不可用(这种情况c;就得考虑主从复制c;对每个shard都备份一个或者多个从库)
分区是库内的c;分片是库外的
数据库中间件
需要多注意c;主从复制的各种小分类
集群架构c; 这个我真看不懂。。。。
以上是大佬教程为你收集整理的高性能MySQL(一) 如何做到高扩展性全部内容,希望文章能够帮你解决高性能MySQL(一) 如何做到高扩展性所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。