这就是所谓的分库分表,为啥要分库分表?你明白了吧 。
文章插图
你们具体是如何对数据库如何进行垂直拆分或水平拆分的?
水平拆分的意思,就是把一个表的数据给弄到多个库的多个表里去,但是每个库的表结构都一样,只不过每个库表放的数据是不同的,所有库表的数据加起来就是全部数据 。水平拆分的意义,就是将数据均匀放在更多的库里,然后用多个库来扛更高的并发,还有就是用多个库的存储容量来进行扩容 。
文章插图
垂直拆分的意思,就是把一个有很多字段的表给拆分成多个表,或者是多个库上去 。每个库表的结构都不一样,每个库表都包含部分字段 。一般来说,会将较少的访问频率很高的字段放到一个表里去,然后将较多的访问频率很低的字段放到另外一个表里去 。因为数据库是有缓存的,你访问频率高的行字段越少,就可以在缓存里缓存更多的行,性能就越好 。这个一般在表层面上做得较多一些 。
文章插图
还有表层面的拆分,就是分表,将一个表变成N个表,就是让每个表的数据量控制在一定范围内,保证SQL 的性能 。否则单表数据量越大,SQL性能就越差 。一般是200万行左右,不要太多,但是也得看具体你怎么操作,也可能是500万,或者是100万 。你的SQL越复杂,就最好让单表行数越少 。
涉及高并发系统,我该怎么办?如果不想只是单纯地做个底层CRUD的搬砖程序员,那么对于高并发系统设计这一类的问题,你必须得掌握!不用慌,小编整理了46问,贯穿整个高并发系统设计的问题,涉及:基础、数据库、缓存、消息队列、分布式、维护、实战操练等7个部分的内容(并将每一问的答案解析整理完整) 。
文章插图
- 为什么要学习高并发系统设计?
- 高并发系统:它的通用设计方法是什么
- 架构分层:我们为什么一定要这么做
- 系统设计目标(一):如何提升系统性能
- 系统设计目标(二):系统怎样做到高可用
- 系统设计目标(三):如何让系统易于扩展
- 面试现场第一期:当问到组件实现原理时,面试官是在刁难你吗?
- 池化技术:如何减少频繁创建数据库连接的性能损耗?
- 数据库优化方案(一):查询请求增加时,如何做主从分离
- 数据库优化方案(二):写入数据量增加时,如何实现分库分表
- 发号器:如何保证分库分表后ID的全局唯─性?
- NoSQL:在高并发场景下,数据库和 NoSQL 如何做到互补?
- 缓存:数据库成为瓶颈后,动态数据的查询要如何加速?
- 缓存的使用姿势(一):如何选择缓存的读写策略?
- 缓存的使用姿势(二):缓存如何做到高可用?
- 缓存的使用姿势(三):缓存穿透了怎么办?
- CDN:静态资源如何加速?
- 数据的迁移应该如何做?
- 消息队列:秒杀时如何处理每秒上万次的下单请求?
- 消息投递:如何保证消息仅仅被消费一次?
- 消息队列:如何降低消息队列系统中消息的延迟?
- 面试现场第二期:当问到项目经验时,面试官究竟想要了解什么
- 从“心”出发,我还有无数个可能
- 高并发系统设计期中测试题目解析
- 系统架构:每秒1万次请求的系统要做服务化拆分吗?
- 微服务架构:微服务化后系统架构要如何改造?
- RPC框架:10万 Q P S 下如何实现毫秒级的服务调用?
- 注册中心:分布式系统如何寻址?
- 分布式Trace :横跨几十个分布式组件的慢请求要如何排查?
- 负载均衡:怎样提升系统的横向扩展能力?
- A P I 网关:系统的门面要如何做呢?
- 多机房部署:跨地域的分布式系统如何做?
- Service Mesh:如何屏蔽服务化系统的服务治理细节?
- 给系统加上眼睛:服务端监控要怎么做?
- 应用性能管理:用户的使用体验应该如何监控?
- 压力测试:怎样设计全链路压力测试平台?
- 配置管理:成千上万的配置项要如何管理?
- 降级熔断:如何屏蔽非核心系统故障的影响?
- 流量控制:高并发系统中我们如何操纵流量?
推荐阅读
- Android性能优化高阶:卡顿、ANR、死锁,线上如何监控?
- 古代武力值最高的皇帝,中国历史上武力最强的皇帝
- 兰贵人茶是高档茶吗,兰贵人茶是什么茶
- 如何挑选冰糖
- 如何挑选高筋面粉
- 如何挑选青菜
- 前端、后端、全栈都是干嘛的?哪个薪资高?
- 6款提高win10性能的软件,让你的电脑越用越好用
- 高平陵之变为什么能成功,高平陵政变与哪位三国人物有关
- 鼠尾草播种时间和方法,高羊茅草籽播种方法