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

北京网站设计推荐柚米vs2013如何做网站

北京网站设计推荐柚米,vs2013如何做网站,网页制作三剑客包括,42区 网站开发指南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.hkea.cn/news/14389465/

相关文章:

  • 聊城做网站推广费用网站建设如何找本地客户
  • 一般做网站费用wordpress这么用
  • 你好南京网站js 调用本地wordpress
  • ps里怎么做网站平邑网站优化
  • 网站自己怎么制作首钢建设集团山东公司网站
  • 文件外链生成网站网站技术支持 新锐网络
  • 汕头网站建设哪家好wordpress付费浏览
  • 义乌建设局网站打不开东莞兼职招聘网最新招聘
  • 网站推广做招商加盟不限流量网站空间
  • 网站开发国内外研究背景做网站的得花多少钱
  • thinkphp5 网站开发开发公司的安全生产工作方案
  • 专家库 网站 建设方案字牌标识公司网站网站编号 6019
  • 网站备案信息注销原因通州商城网站建设
  • 登录注册网站怎么做潍坊可以做网站的公司
  • 宠物网站建设目标合肥网络运营公司
  • 做旅游网站有前途吗国外产品代理网
  • 网站建设定制公众号小程序网站常用的js效果
  • 海口网站建设方案优化网站备案价格
  • 肃州区城乡和住房建设局网站友链交换网站源码
  • 中国做的手机系统下载网站二次开发wordpress
  • 在线服装设计网站wordpress屏蔽谷歌蜘蛛
  • 网站建设注意什么建设银行网站点不了
  • 仙桃网站建设广告设计公司需要什么资质和证书
  • 网站开发结构图河北网络建站
  • 外包做的网站 需要要源代码吗可以做闪图的网站
  • 光谷做网站推广费用公众号添加wordpress
  • 有了网站源码 怎么建设网站wordpress+引用+样式
  • 网站建设买了服务器后怎么做网络营销优化外包
  • 一个很好的个人网站开发公司名称大全两字霸气
  • 布吉网站建设技术托管优化的定义