摘要:
数据库自增id: 这个就是说你的系统里每次得到一个id,都是往一个库的一个表里插入一条没什么业务含义的数据,然后获取一个数据库自增的一个id。拿到这个id之后再往对应的分库分表里去写入。 这个方案的好处就是方便简单;缺点就是单库生成自增id,要是高并发的话,就会有瓶颈的; 适合的场景:你分库分表就俩 阅读全文
摘要:
设定好几台数据库服务器,每台服务器上几个库,每个库多少个表,推荐是32库 * 32表。 比如4台服务器,每台服务器上8个库,每个库32张表。 路由的规则,orderId%32 = 库,orderId / 32 %32 = 表 扩容的时候,申请增加更多的数据库服务器,装好mysql,倍数扩容,4台服务 阅读全文
摘要:
停机迁移方案 网站或者app挂个公告,说0点到早上6点进行运维,无法访问 接着到0点,停机,没有流量写入了,此时老的单库单表数据库静止了。然后你之前得写好一个导数的一次性工具,此时直接跑起来,然后将单库单表的数据读出来,写到分库分表里面去。 导数完了之后,就ok了,修改系统的数据库连接配置啥的,包括 阅读全文
摘要:
单表到几百万的时候,性能就会相对差一些了,你就得分表了。 分表是啥意思?就是把一个表的数据放到多个表中,然后查询的时候你就查一个表。比如按照用户id来分表,将一个用户的数据就放在一个表中。然后操作的时候你对一个用户就操作那个表就好了。这样可以控制每个表的数据量在可控的范围内,比如每个表就固定在200 阅读全文
摘要:
系统拆分,将一个系统拆分为多个子系统,用dubbo来搞。然后每个系统连一个数据库,这样本来就一个库,现在多个数据库,不也可以抗高并发么。 缓存,必须得用缓存。大部分的高并发场景,都是读多写少,那你完全可以在数据库和缓存里都写一份,然后读的时候大量走缓存不就得了。毕竟人家redis轻轻松松单机几万的并 阅读全文