MySQL分库分表
文章平均质量分 85
SpringBoot2+MyBatis Plus+ShardingJDBC实现MySQL分库分表
豆浆两块钱
在路上。
展开
-
掌握MySQL分库分表(七)广播表、绑定表实战,水平分库+分表实现及之后的查询和删除操作
指所有的分片数据源中都存在的表,表结构和表中的数据在每个数据库中均完全⼀致适用于数据量不⼤且需要与海量数据的表进行关联查询的场景,例如:字典表、配置表需求:在任意一个库中插入一条数据,另一个库中的相同表也插入这条数据。原创 2023-02-22 13:43:09 · 1896 阅读 · 2 评论 -
掌握MySQL分库分表(六)解决主键重复问题--Snowflake雪花算法
表示的值 -9223372036854775808(-2的63次方)~9223372036854775807(2的63次⽅-1)生成的唯⼀值⽤于数据库主键,不能是负数,所以值为0~9223372036854775807(2的63次方-1)分布式情况下,需要保证各个系统时间⼀致,如果服务器的时钟回拨,就会导致⽣成的 id 重复。雪花算法生成的数字,long类,所以是:8个byte,64bit。bit(位):电脑中存储的最小单位,可以存储⼆进制中的0或1。16位平台 int 2个字节16位。原创 2023-02-21 19:23:11 · 2937 阅读 · 0 评论 -
掌握MySQL分库分表(一)数据库性能优化思路、分库分表优缺点
不能⼀上来就说分库分表。在数据量及访问压力不是特别大的情况,首先考虑缓存、读写分离、索引技术等方案,如果数据量极⼤,且业务持续增长快,再考虑分库分表方案原创 2023-02-20 15:23:03 · 1200 阅读 · 0 评论 -
掌握MySQL分库分表(二)Mysql数据库垂直分库分表、水平分库分表
水平分表:同个数据库内,把⼀个表的数据按照⼀定规则拆分到多个表中,对数据进⾏拆分,不影响表结构。好处: 1. 避免IO时锁表的次数,分离热点字段和⾮热点字段,避免⼤字段IO导致性能下降。水平分库:把同个表的数据按照⼀定规则分到不同的数据库中,数据库在不同的服务器上。单个表的数据量少了,业务SQL执行效率⾼,降低了系统的IO和CPU压力。原则: 1. 选择合适的分片键和分片策略,和业务场景配合。垂直分表: 将⼀个表字段拆分多个表,每个表存储部分字段。原则:1. 选择合适的分片键和分片策略,和业务场景配合。原创 2023-02-20 18:11:18 · 1763 阅读 · 3 评论 -
掌握MySQL分库分表(三)水平分库分表常见策略range、hash
水平分库分表,根据什么规则进行划分?原创 2023-02-20 20:08:29 · 708 阅读 · 0 评论 -
掌握MySQL分库分表(四)分库分表中间件Sharding-Jdbc,真实表、逻辑表、绑定表、广播表,常见分片策略
是⼀套开源的分布式数据库解决⽅案组成的生态圈,定位为Database Plus;它由JDBCProxy和Sidecar这 3 款既能够独立部署,又支持混合部署配合使用的产品组成。原创 2023-02-21 13:52:21 · 553 阅读 · 0 评论 -
掌握MySQL分库分表(五)SpringBoot2+MybatisPlus整合Sharding-Jdbc水平分表实现
具体到每个数据节点的SQL,经过一层路由,执行真实sql操作,将数据按照分片策略插入到相应表中。没具体到哪个数据节点,先执行一条逻辑语句,把数据插入到逻辑表。数据库1:xdclass_shop_order_0。数据库2:xdclass_shop_order_1。表1:product_order_0。表2:product_order_1。表1:product_order_0。表2:product_order_1。分库分表带来的六个问题之一。原创 2023-02-21 18:18:03 · 1244 阅读 · 0 评论