当前位置: 首页 > wzjs >正文

做网站考什么赚钱微信企业网站

做网站考什么赚钱,微信企业网站,在线做维恩图的生物信息学网站,视频解析网站如何做搜索ShardingJdbc-水平分表 水平分表 表结构相同表数据记录不同多张分表记录数和才是总的记录数通常根据主键ID进行分表,这里采用奇偶策略 案例 建立库 sharding-demo建立表 user_1、user_2 表结构相同id 为主键,bigint 类型分表规则 id 为偶数的记录存储…

ShardingJdbc-水平分表

水平分表

  • 表结构相同
  • 表数据记录不同
  • 多张分表记录数和才是总的记录数
  • 通常根据主键ID进行分表,这里采用奇偶策略

案例

  • 建立库 sharding-demo
  • 建立表 user_1、user_2 表结构相同
  • id 为主键,bigint 类型
  • 分表规则
    • id 为偶数的记录存储到 user_1
    • id 为奇数的记录存储到 user_2

建表语句

库(sharding_demo)自行创建

CREATE TABLE `user_1`  (`id` bigint NOT NULL,`client_id` bigint NOT NULL,`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,`age` int NULL DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

在这里插入图片描述
在这里插入图片描述

项目代码

自行创建 SpringBoot 项目 ShardingJDBCDemo

  • 导入依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.1.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.study</groupId><artifactId>ShardingJDBCDemo</artifactId><version>0.0.1-SNAPSHOT</version><name>ShardingJDBCDemo</name><description>ShardingJDBCDemo</description><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId></dependency><!-- mysql 数据库连接依赖 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!-- 数据库连接池依赖 --><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.20</version></dependency><!-- MybatisPlus --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.0.5</version></dependency><!-- shardingsphere 必须的依赖 sharding-jdbc  !!! --><dependency><groupId>org.apache.shardingsphere</groupId><artifactId>sharding-jdbc-spring-boot-starter</artifactId><version>4.0.0-RC1</version></dependency><!-- 简化实体get/set依赖 --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>
  • 创建用户实体类
package com.study.shardingjdbcdemo.demo.entity;import lombok.Data;@Data
public class User {private Integer id;private String name;private Integer age;private Integer clientId;
}
  • 编写 mapper
package com.study.shardingjdbcdemo.demo.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.study.shardingjdbcdemo.demo.entity.User;
import org.apache.ibatis.annotations.Mapper;@Mapper
public interface UserMapper extends BaseMapper<User> {
}
  • 启动类增加mapper扫描
package com.study.shardingjdbcdemo;import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
@MapperScan("com.study.shardingjdbcdemo.demo.mapper")
public class ShardingJdbcDemoApplication {public static void main(String[] args) {SpringApplication.run(ShardingJdbcDemoApplication.class, args);}}

水平分表配置

application.yml 配置详解

# 水平表拆分   一库多表
server:port: 8081spring:main:# 一个实体类对应两张表,覆盖allow-bean-definition-overriding: trueshardingsphere:datasource:names: ds1ds1:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3307/sharding_demo?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTCusername: rootpassword: rootsharding:tables:user:# 分表规则 哪个库(ds1)哪张表(user)以及表名称规则(user_1、user_2)actual-data-nodes: ds1.user_$->{1..2}
#          key-generator: # id 采用雪花算法也可以
#            column: id
#            type: SNOWFLAKE# 分片策略table-strategy:inline:# 分片列sharding-column: id# 分片算法:id为偶数存储到user_1,奇数存储到 user_2# 除2取余数,要么是0要么是1,然后给+1,对应的就是user_1、user_2algorithm-expression: user_$->{id % 2 + 1}props:# 打印SQL日志sql:show: true

测试结果

奇数测试

insert_1:插入 id 为 1 的数据

 @Testvoid insert_1() {User user = new User();user.setId(1);user.setName("user_" + 1);user.setAge(18);userMapper.insert(user);}
  • 运行结果

id 为 1,根据策略奇数应存储到表 user_2

在这里插入图片描述
1111

说明:日志中也可以看出,使用的是ds1(sharding_demo)插入的表为 user_2

偶数测试

insert_2:插入 id 为 2 的数据

 @Testvoid insert_2() {User user = new User();user.setId(2);user.setName("user_" + 2);user.setAge(20);userMapper.insert(user);}
  • 运行结果
    id 为 2,根据策略偶数应存储到表 user_1

在这里插入图片描述
在这里插入图片描述

说明:日志中也可以看出,使用的是ds1(sharding_demo)插入的表为 user_1

查询测试

selectById: 根据id查询id为1、2的记录

	@Testvoid selectById() {userMapper.selectById(1);userMapper.selectById(2);}
  • 运行日志
    在这里插入图片描述
说明:1. id = 1, 数据库 ds1 (sharding_demo) ,查询的表为 user_22. id = 2, 数据库 ds1 (sharding_demo) ,查询的表为 user_13. 查询和插入均遵守分表奇偶策略,完全正确 !!!

综上所述,ShardingSphere-ShardingJdbc-水平分表奇偶策略 Demo 则告一段落,希望对大家有所帮助!


文章转载自:

http://JOPudd3F.pbwcq.cn
http://IXUEEe2N.pbwcq.cn
http://m0ZpuYQx.pbwcq.cn
http://Tdb6Zd2o.pbwcq.cn
http://Tzta8Lmu.pbwcq.cn
http://mN5UvXYI.pbwcq.cn
http://IETLlQ7I.pbwcq.cn
http://zVhFt6Y6.pbwcq.cn
http://D0fK5B5W.pbwcq.cn
http://UM3KiYiM.pbwcq.cn
http://dyzftOLx.pbwcq.cn
http://xs3pADcp.pbwcq.cn
http://gglsqRAG.pbwcq.cn
http://8yNGzl6Z.pbwcq.cn
http://oTa6tqOg.pbwcq.cn
http://jKjdqbq4.pbwcq.cn
http://kOsNKxlS.pbwcq.cn
http://Ch1iEBzM.pbwcq.cn
http://ZQUDX3fv.pbwcq.cn
http://EGefsySi.pbwcq.cn
http://MQmrrD2I.pbwcq.cn
http://iydMN7Zl.pbwcq.cn
http://RDwwAP0A.pbwcq.cn
http://WkGlkwnP.pbwcq.cn
http://uegDCW8T.pbwcq.cn
http://TFfsut4e.pbwcq.cn
http://gS2T8Yg9.pbwcq.cn
http://PSnTfGaB.pbwcq.cn
http://1tUL3ce4.pbwcq.cn
http://w0uMQSsa.pbwcq.cn
http://www.dtcms.com/wzjs/714751.html

相关文章:

  • 网站做排名需要多少钱山东省建设工程网站
  • 莘县网站建设怎样做天猫 淘宝网站导购
  • 小清新网站源码重庆大学建设管理与房地产学院网站
  • 哪个网站做h5比较好做淘宝优惠卷网站步骤
  • 最简单的单页网站怎么做网站备案链接直接查看
  • 湖北网站科技建设项目模仿做网站
  • 哪些网站可以免费做产品推广健康网站可以做推广吗
  • 房产网站设计模板酒店如何做好线上营销
  • 好的营销网站公众号做网站
  • 设计网站广告语温岭市建设局网站审批公示
  • 云网站注册太原建站培训
  • 南昌网站排名优化费用济宁企业网站建设公司
  • 手机网站最简单三个步骤河南省工程建设监理协会网站
  • 03340 网站建设与管理3d动画制作软件免费
  • 邯郸做网站询安联网络济南建设厅官方网站
  • 南京定制网站哪个好wordpress建个人网站
  • 做网站的域名纳税服务网站建设情况
  • 朔州网站建设费用大连工程信息网
  • 手机网站焦点图代码企业名录免费大全
  • 网站建设硬件投入表国际品牌的品牌策划公司
  • 重庆市教育考试院门户网站网站跳转qq链接怎么做的
  • 陕西铜川煤矿建设有限公司网站郑州市做网站的
  • 红色网站 后台网站建设的基本情况
  • 网络营销网站建设诊断报告网站做推广要备案吗
  • 南京淘宝网站设计公司昆明网站建设哪个好
  • 网站开发与应用专业就业方向福州做网站需要多少钱
  • 小型企业网站建设内容wordpress升级机制
  • 学做巧裁缝官方网站湖州网站设计浙北数据
  • 网站顶部可关闭广告网站建设小组实验报告
  • 云服务器怎么样做网站商城网站开发嵌入支付宝