公众号merlinsea
- 水平分库
- 需求:⾼并发的项⽬中,⽔平分表后依旧在单个库上⾯,1个数据库资源瓶颈 CPU/内存/带宽等限制导致响应慢,需要进⾏优化。
- 水平分库介绍
- 把同个表的数据按照⼀定规则分到不同的数据库中,数据库在不同的服务器上。
- ⽔平分库是把水平分的子表拆到不同数据库中,它是对数据⾏的拆分,不影响表结构。
- 每个库的结构都⼀样,但每个库的数据都不⼀样,没有交集,所有库的并集就是全量数据。
- ⽔平分库的粒度,⽐⽔平分表更⼤。
- 水平分表
- 需求:当⼀张表的数据达到⼏千万时,查询⼀次所花的时间⻓,需要进⾏优化,缩短查询时间。
- 水平分表介绍
- 把⼀个表的数据分到⼀个数据库的多张表中,每个表只有这个表的部分数据。
- 核⼼是把⼀个⼤表,分割N个⼩表,每个表的结构是⼀样的,数据不⼀样,全部表的数据合起来就是全部数据。
- 针对数据量巨⼤的单张表(⽐如订单表),按照某种规则,如RANGE,HASH取模,时间等规则来进行划分到多张表⾥⾯去。
- 但是【这些表还是在同⼀个库中】,所以单数据库操作还是有IO瓶颈,主要是解决单表数据量过⼤的问题。
- 水平分表可以减少锁表范围,没分表前,如果是DDL(create/alter/add等)语句,当需要添加⼀列的时候mysql会锁表,期间所有的读写操作只能等待。
- 关于leetcode算法训练营:
- 加我微信号私聊参加训练营,尤其是想进入大厂工作的同学,算法是绕不过去的坎,我自己花了三年时间刷算法,总结思路,刷各种数据结构课程,加入我的训练营,我手把手以在线直播课的形式带你理思路,手把手带你写代码,让你真正体会算法之美~,同时遇到不明白的地方可以直接课上和我沟通,彻底解决你的代码困难证~
本人用c++刷了800道左右的算法,java语言刷了600道左右的算法题,并对这些题做了详细的个人总结。本科期间系统学习了数据结构与算法课程,同时考研过程中写完了率辉主编的《2020年数据结构高分笔记》和《数据结构1000题》,看完的视频包括《mooc浙大数据结构国家精品课程》和《王道考研408数据结构课程》,《王道2019年算法题讲解视频》,最终以初试专业第三名进入了北理工软件工程专业。熟悉并掌握常见的数据结构,比如链表、数组、树、图、队列、堆栈等等,精通数据结构教材中的所有算法,比如常见的遍历算法、动态规划,递归,回溯,剪枝,并查集,最短路径,拓扑排序等,所以快加入训练营吧,我们一起进步
奔跑的小梁,公众号:梁霖编程工具库我决定了,算法文档开源!!