
ShardingJDBC
文章平均质量分 55
乐百寿
day day up
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
sharding-jdbc 根据时间分库分表(三)
通过sharding-jdbc按时间来分表一,准备数据库的表CREATE TABLE `t_user_202101` ( `id` bigint NOT NULL COMMENT '主键', `user_name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户名', `age` int NOT NULL COMMENT '年龄', `sex` varchar(64) CHARACTE原创 2021-06-12 10:51:53 · 4462 阅读 · 3 评论 -
SQL/数据规范
一,基础规范1,数据库的设计应该要有主键,而且主键一般用整数,一般主键会有主键索引,而且整数比字符串占用的空间小。2,表在设计之初最好先考虑到数量级别,一般小于1000W的用单表,表里面有大字段的应考虑将大字段拆分出来,保留经常会用到的字段即可。3,尽可能的避免使用外键。3,单实例分表数量1024个。二,列规范1,设计金额的用decimal,并指定精度。2,不要设计为null的字段,而是用空字符串,应为null会占用更多的空间,因为可能造成索引失效。三,索引规范1,唯一索引使用uniq_.原创 2021-05-29 21:00:22 · 366 阅读 · 0 评论 -
sharding-jdbc 的事务管理(五)
数据库的事务需要满足ACID原则原子性:值事务作为整体来执行,要么全部执行,要么全部不执行一致性:指事务应该确保数据,从一个一致的状态变为另一个一致的状态,如,从建行给农行转账1000,建行钱扣了,而农行没收到,这就是 不一致性状态;隔离性:值事务执行并发时,一个事务的执行不会被另一个事务的执行所影响持久化:已经提交的事务,那么数据将会永久保存sharding的事务两阶段事务-XA功能:1,支持数据分片后的跨库XA事务2,两阶段提交确保了事务的原子性和强一致性3,服务重启宕机后,提交/回滚原创 2021-05-29 19:26:15 · 1003 阅读 · 0 评论 -
sharding-jdbc 分表后主键重复问题(四)
一,sharding 分表后主键重复问题背景:使用数据库中间件sharding分表后,数据会根据配置的路由规则,将同一业务场景下的数据存储到不同的表中,而在大部分开发情况下数据库的id都是自增,当联表查询数据时就会出现主键重复的情况,二,解决办法sharding提供了数据插入时可以生成雪花算法或UUID的方式来使数据有唯一key值,三,使用方法在yml文件中逻辑表下配置 key-generator: 主键,和主键生成类型tables: t_user: actual-data-nod原创 2021-05-29 12:40:39 · 2589 阅读 · 1 评论 -
读写分离与数据的主从复制(一)
1,读写分离;什么是读写分离:就是将数据查询与数据的增删该分开,为什么要分开,比如在查询多于增删改的情况下,为了避免由于增删改影响查询的效率,而提出的解决方案,那怎么分开呢?简单的说就是读和写操作的不是同一个数据库,如下图,读数据时查询的从库,而写数据时主库。那么问题来了,同一段业务代码增删该时操作的master主库,而读又是slave从库,那么必然就会导致数据不统一,明明已经删除了的数据,却又能被查询出来,在实际生产中是绝对不允许这样情况存在的,这里就会引入到一个主从复制的概念,来保证数据一致。主原创 2021-05-29 12:00:47 · 148 阅读 · 0 评论 -
sharding-jdbc 分库分表(二)
一,什么是Sharding-JDBCSharding-JDBC是当当网研发的开源分布式数据库中间件,从3.0开始Sharding-JDBC被包含在Sharding-Sphere中,4.0版本之后的版本为Apache版本。ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar这三款相互独立的产品组成,他们均提供标准化的数据分片、分布式事务和数据库治理能力。Sharding-JDBC,它原创 2021-05-29 11:59:35 · 631 阅读 · 0 评论