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

网站建设需要域名注册页面模板

网站建设需要域名,注册页面模板,金牛区建设和交通局网站,网页设计左右布局代码SpringBootMybatis-plusshardingsphere实现分库分表 文章目录 SpringBootMybatis-plusshardingsphere实现分库分表介绍引入依赖yaml配置DDL准备数据库ds0数据库ds1 entitycotrollerserviceMapper启动类测试添加修改查询删除 总结 介绍 实现亿级数据量分库分表的项目是一个挑战…SpringBootMybatis-plusshardingsphere实现分库分表 文章目录 SpringBootMybatis-plusshardingsphere实现分库分表介绍引入依赖yaml配置DDL准备数据库ds0数据库ds1 entitycotrollerserviceMapper启动类测试添加修改查询删除 总结 介绍 实现亿级数据量分库分表的项目是一个挑战性很高的任务下面是一个基于Spring Boot的简单实现方案 数据库选择使用MySQL数据库因为MySQL在分库分表方面有较成熟的解决方案。 分库分表策略可以采用水平分库分表的策略根据一定的规则将数据分散存储在不同的数据库和表中例如可以根据用户ID、订单ID等进行分片。 数据分片策略可以采用基于雪花算法的分布式ID生成器来生成全局唯一的ID确保数据在不同数据库和表中的唯一性。 数据同步考虑到数据分散存储在不同的数据库和表中需要实现数据同步机制来保证数据的一致性可以使用Canal等开源工具来实现MySQL数据的实时同步。 连接池优化在处理大量数据时连接池的配置尤为重要可以使用Druid等高性能的连接池来提升数据库连接的效率。 缓存机制考虑使用Redis等缓存工具来缓存热点数据减轻数据库的压力提升系统性能。 分布式事务在分库分表的场景下涉及到跨库事务可以考虑使用分布式事务框架如Seata等来保证事务的一致性。 监控与调优实时监控数据库的性能指标及时调整分片策略和数据库配置保证系统的稳定性和性能。 引入依赖 dependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.28/version/dependencydependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdversion3.4.3/version/dependency!--分库分表--!-- Sharding-JDBC --dependencygroupIdorg.apache.shardingsphere/groupIdartifactIdshardingsphere-jdbc-core-spring-boot-starter/artifactIdversion5.2.0/version/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency/dependenciesyaml配置 server:port: 10086spring:shardingsphere:# 数据源配置datasource:# 数据源名称多数据源以逗号分隔names: db0,db1db0:type: com.zaxxer.hikari.HikariDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverjdbc-url: jdbc:mysql://127.0.0.1:3306/ds0?useUnicodetruecharacterEncodingutf-8useSSLfalseserverTimezoneAsia/ShanghaiallowPublicKeyRetrievaltrueusername: rootpassword: rootdb1:type: com.zaxxer.hikari.HikariDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverjdbc-url: jdbc:mysql://127.0.0.1:3306/ds1?useUnicodetruecharacterEncodingutf-8useSSLfalseserverTimezoneAsia/ShanghaiallowPublicKeyRetrievaltrueusername: rootpassword: root# 分片规则配置rules:sharding:# 分片算法配置sharding-algorithms:database-inline:# 分片算法类型type: INLINEprops:# 分片算法的行表达式算法自行定义此处为方便演示效果algorithm-expression: db$-{age % 2}table-inline:# 分片算法类型type: INLINEprops:# 分片算法的行表达式algorithm-expression: user_$-{age % 3}tables:# 逻辑表名称user:# 行表达式标识符可以使用 ${...} 或 $-{...}但前者与 Spring 本身的属性文件占位符冲突因此在 Spring 环境中使用行表达式标识符建议使用 $-{...}actual-data-nodes: db${0..1}.user_${0..2}# 分库策略database-strategy:standard:# 分片列名称sharding-column: age# 分片算法名称sharding-algorithm-name: database-inline# 分表策略table-strategy:standard:# 分片列名称sharding-column: age# 分片算法名称sharding-algorithm-name: table-inline# 属性配置props:# 展示修改以后的sql语句sql-show: trueDDL准备 数据库ds0 -- ds0.user_0 definitionCREATE TABLE user_0 (id bigint NOT NULL AUTO_INCREMENT COMMENT 主键,name varchar(32) NOT NULL COMMENT 姓名,age int NOT NULL COMMENT 年龄,PRIMARY KEY (id) ) ENGINEInnoDB COMMENT用户表;-- ds0.user_1 definitionCREATE TABLE user_1 (id bigint NOT NULL AUTO_INCREMENT COMMENT 主键,name varchar(32) NOT NULL COMMENT 姓名,age int NOT NULL COMMENT 年龄,PRIMARY KEY (id) ) ENGINEInnoDB COMMENT用户表;-- ds0.user_2 definitionCREATE TABLE user_2 (id bigint NOT NULL AUTO_INCREMENT COMMENT 主键,name varchar(32) NOT NULL COMMENT 姓名,age int NOT NULL COMMENT 年龄,PRIMARY KEY (id) ) ENGINEInnoDB COMMENT用户表;数据库ds1 -- ds1.user_0 definitionCREATE TABLE user_0 (id bigint NOT NULL AUTO_INCREMENT COMMENT 主键,name varchar(32) NOT NULL COMMENT 姓名,age int NOT NULL COMMENT 年龄,PRIMARY KEY (id) ) ENGINEInnoDB COMMENT用户表;-- ds1.user_1 definitionCREATE TABLE user_1 (id bigint NOT NULL AUTO_INCREMENT COMMENT 主键,name varchar(32) NOT NULL COMMENT 姓名,age int NOT NULL COMMENT 年龄,PRIMARY KEY (id) ) ENGINEInnoDB COMMENT用户表;-- ds1.user_2 definitionCREATE TABLE user_2 (id bigint NOT NULL AUTO_INCREMENT COMMENT 主键,name varchar(32) NOT NULL COMMENT 姓名,age int NOT NULL COMMENT 年龄,PRIMARY KEY (id) ) ENGINEInnoDB COMMENT用户表;entity package com.kang.sharding.entity;import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data;Data TableName(user) public class User {TableId(value id,type IdType.AUTO)private Long id;private String name;private Integer age;// getter, setter, toString... }cotroller package com.kang.sharding.controller;import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.kang.sharding.entity.User; import com.kang.sharding.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*;import java.util.List;RestController RequestMapping(/user) public class UserController { Autowired private UserService userService;PostMapping (add)public boolean createUser(RequestBody User user) {return userService.save(user); }PostMapping (update)public boolean updateByAge(RequestBody User user){LambdaUpdateWrapperUser updateWrapper new LambdaUpdateWrapper();// 分片数据不允许更新,否则会报错updateWrapper.eq(User::getAge,user.getAge()).set(User::getName,user.getName());return userService.update(updateWrapper);}GetMapping (delete)public boolean deleteUserByAge(RequestParam(age) Integer age) {LambdaQueryWrapperUser queryWrapper new LambdaQueryWrapper();queryWrapper.eq(User::getAge,age);return userService.remove(queryWrapper);}GetMapping(/{age})public ListUser getUserByAge(PathVariable Integer age) {LambdaQueryWrapperUser queryWrapper new LambdaQueryWrapper();queryWrapper.eq(User::getAge,age);return userService.list(queryWrapper);} // 其他方法... }service package com.kang.sharding.service;import com.kang.sharding.entity.User; import com.kang.sharding.mapper.UserMapper; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; Service public class UserService extends ServiceImplUserMapper, User { }Mapper package com.kang.sharding.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.kang.sharding.entity.User; import org.apache.ibatis.annotations.Mapper;Mapper public interface UserMapper extends BaseMapperUser { }启动类 package com.kang.sharding;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;SpringBootApplication public class ShardingJdbcProjectApplication {public static void main(String[] args) {SpringApplication.run(ShardingJdbcProjectApplication.class, args);}}测试 添加 修改 查询 删除 总结 这只是个简单的入门示例,后续深入研究
http://www.w-s-a.com/news/33458/

相关文章:

  • 网站性能优化的方法有哪些建设施工合同网站
  • 郑州建设企业网站山西省住房和城乡建设厅网站
  • 做网站的去哪找客户正规制作网站公司
  • 网站代理访问是什么意思外国优秀设计网站
  • 合肥个人建站模板网络技术服务有限公司
  • 做网站什么公司好dw企业网站开发教程
  • 怎么做自己的个人网站宝安网站设计哪家最好
  • 浩博建设集团网站站长网站统计
  • 电商网站开发视频seo排名优化方式方法
  • 宿迁市住房城乡建设局网站wordpress纯图片主题
  • 广州建设网站 公司湖北省建设信息网官网
  • 网站建立时间查询做百度移动网站优化排
  • 网站建设和运行费用qq恢复官方网站
  • 可以免费建立网站吗免费的网络营销方式
  • 天津企业设计网站建设wordpress标题字体大小
  • 上高县城乡规划建设局网站创业项目
  • 钓鱼网站在线下载广州网站设计哪里好
  • 做阿里国际网站会有成效吗wordpress微博同步
  • 西安网站建设云速网络网站运营情况怎么写
  • 免费建网站的网站微信商城分销系统方案
  • 烟台网站seo服务友情链接有哪些展现形式
  • 什么是移动网站开发免费网站开发框架
  • 做网站 创业wordpress子菜单
  • 门户网站类型有哪些权重7以上的网站
  • 政务网站建设论文android app开发教程
  • 网站开发实训h5总结个人网站注册平台要多少钱
  • 空白网站建设wordpress高亮代码过长
  • 盐城 网站开发什么叫做门户网站
  • 广东快速做网站公司哪家好本地建wordpress
  • dedecms如何做网站贵阳seo计费管理