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

万网网站备案域客式单页网站能申请域名吗

万网网站备案,域客式单页网站能申请域名吗,wordpress插件打包下载,网站建设大庆说明#xff1a;Sharding-jdbc是常见的分库分表工具#xff0c;本文介绍Sharding-jdbc的基础使用。 分库分表 首先#xff0c;介绍一下分库分表#xff1a; #xff08;1#xff09;分库 水平分库#xff1a;以字段为依据#xff0c;按照一定策略#xff08;hash、…说明Sharding-jdbc是常见的分库分表工具本文介绍Sharding-jdbc的基础使用。 分库分表 首先介绍一下分库分表 1分库 水平分库以字段为依据按照一定策略hash、range将一个库中的数据拆分到多个库中 垂直分库以表为依据按照业务归属不同将不同的表拆分到不同的库中 2分表 水平分表按照策略将记录路由到不同的表上常见的策略有范围、hash、字段值 垂直分表根据业务相关性拆分表字段将一张表拆分为多张表 水平分就是横着一刀垂直分就是竖着一刀。 垂直分库、垂直分表我认为是设计时考虑的像微服务架构根据业务场景拆分多个小的服务每个服务都可以有自己的数据库是垂直分库。 而垂直分表某张表的字段过长可以考虑将表字段按照业务相关性拆分成多张表另外当表中有text类型的字段时为了避免影响其他字段索引率也需要独立出来一张表用主键对应阿里巴巴《Java开发手册》是垂直分表的体现。 3需要考虑的问题 分库 跨库事务 跨库的JOIN 分表 多张表如何保证主键不重复 多张表的count、order by、group by 及 聚合函数问题 Sharding-jdbc使用 这里介绍使用Sharding-jdbc实现水平分表 1创建数据库表 先创建两张数据库表 # 创建数据库 create schema order_db collate utf8mb3_general_ci;# 创建表 use order_db;CREATE TABLE t_order_1 (order_id bigint NOT NULL COMMENT 订单id,price decimal(10, 2) NOT NULL COMMENT 订单价格,user_id bigint NOT NULL COMMENT 下单用户id,status varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT 订单状态,PRIMARY KEY (order_id) USING BTREE ) ENGINE InnoDBDEFAULT CHARSET utf8mb3ROW_FORMAT DYNAMIC;CREATE TABLE t_order_2 (order_id bigint NOT NULL COMMENT 订单id,price decimal(10, 2) NOT NULL COMMENT 订单价格,user_id bigint NOT NULL COMMENT 下单用户id,status varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL COMMENT 订单状态,PRIMARY KEY (order_id) USING BTREE ) ENGINE InnoDBDEFAULT CHARSET utf8mb3ROW_FORMAT DYNAMIC;2创建项目 创建一个Spring Boot项目pom如下 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.hezy/groupIdartifactIdsharding-jdbc-demo/artifactIdversion1.0-SNAPSHOT/versionpropertiesmaven.compiler.source8/maven.compiler.sourcemaven.compiler.target8/maven.compiler.targetproject.build.sourceEncodingUTF-8/project.build.sourceEncoding/propertiesdependencies!-- shardingJDBC核心依赖 --dependencygroupIdorg.apache.shardingsphere/groupIdartifactIdshardingsphere-jdbc-core-spring-boot-starter/artifactIdversion5.2.1/versionexclusionsexclusionartifactIdsnakeyaml/artifactIdgroupIdorg.yaml/groupId/exclusionexclusionartifactIdcosid-core/artifactIdgroupIdme.ahoo.cosid/groupId/exclusion/exclusions/dependency!-- 版本冲突 --dependencygroupIdorg.yaml/groupIdartifactIdsnakeyaml/artifactIdversion1.33/version/dependencydependencygroupIdme.ahoo.cosid/groupIdartifactIdcosid-core/artifactIdversion1.19.3/version/dependency!--XA 分布式事务 --dependencygroupIdorg.apache.shardingsphere/groupIdartifactIdshardingsphere-transaction-xa-core/artifactIdversion5.2.1/versionexclusionsexclusionartifactIdtransactions-jdbc/artifactIdgroupIdcom.atomikos/groupId/exclusionexclusionartifactIdtransactions-jta/artifactIdgroupIdcom.atomikos/groupId/exclusion/exclusions/dependency!-- SpringBoot依赖 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter/artifactIdexclusionsexclusionartifactIdsnakeyaml/artifactIdgroupIdorg.yaml/groupId/exclusion/exclusions/dependency!--测试类依赖--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactId/dependency!--durid数据库连接池--dependencygroupIdcom.alibaba/groupIdartifactIddruid/artifactIdversion1.1.20/version/dependency!-- mysql连接驱动 --dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactId/dependency!-- mybatisplus依赖 --dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdversion3.4.3.3/version/dependency/dependencies /project3编写代码 创建pojo对象注意表名是t_order没有加后缀 import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;import java.io.Serializable; import java.math.BigDecimal;Data NoArgsConstructor AllArgsConstructor TableName(t_order) public class Order implements Serializable {TableIdprivate Long orderId;private BigDecimal price;private Long userId;private String status; }创建Service和Mapper OrderService import com.baomidou.mybatisplus.extension.service.IService; import com.hezy.pojo.Order;public interface OrderService extends IServiceOrder { }OrderServiceImpl import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.hezy.mapper.OrderMapper; import com.hezy.pojo.Order; import com.hezy.service.OrderService; import org.springframework.stereotype.Service;Service public class OrderServiceImpl extends ServiceImplOrderMapper, Order implements OrderService { }OrderMapper import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.hezy.pojo.Order; import org.apache.ibatis.annotations.Mapper;Mapper public interface OrderMapper extends BaseMapperOrder { }启动类 import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;SpringBootApplication public class App {public static void main(String[] args) {SpringApplication.run(App.class, args);} }4配置文件 配置文件中定义了数据库配置及水平分表的策略采用取模%2的方式 spring:main:# 允许Bean重复定义覆盖allow-bean-definition-overriding: trueshardingsphere:datasource:# 数据源名称,多个数据源时使用逗号,分割names: m1m1:type: com.alibaba.druid.pool.DruidDataSourcedriverClassName: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/order_db?serverTimezoneAsia/ShanghaicharacterEncodingutf8username: rootpassword: 123456sharding:tables:t_order:# 配置数据节点m1.t_order_1m1.t_order_2使用上面names的配置名称actual-data-nodes: m1.t_order_$-{1..2}key-generator:# 配置主键及主键生成算法column: order_id# 雪花算法type: SNOWFLAKEtable-strategy:inline:# 配置分片键sharding-column: order_id# 配置分片策略 order_id % 2 1 的值就是数据实际要进入的数据表 # 利用“取模”计算的方式进行分片将分片键除以分片表的个数得到的模就是该数据要进入的数据表# 示例中共有2张分片表则此处求取分片键的值与分片表的模数表示为 order_id % 2又因为分片表的初始值以 1 开始则再加上1algorithm-expression: t_order_$-{order_id % 2 1} mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl# 配置数据库字段与实体类映射方式是否是小驼峰命名法map-underscore-to-camel-case: trueglobal-config:db-config:# 配置数据表前缀table-prefix: t_5测试 写一个测试类如下 import com.hezy.pojo.Order; import com.hezy.service.OrderService; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest;import java.math.BigDecimal; import java.util.List;SpringBootTest public class OrderMapperTest {Autowiredprivate OrderService orderService;Testpublic void insertTest() {for (int i 0; i 10; i) {Order order new Order();order.setStatus(正常);order.setPrice(new BigDecimal(20));order.setUserId(1L);boolean save orderService.save(order);System.out.println(save);}}Testpublic void findAllTest() {ListOrder list orderService.list();System.out.println(list);} }执行插入方法插入完成 可见数据分散插入到对应的表中 试一下查询也是查出10条记录而不是单张表的5条记录。 注意 如果是手写SQL不用Mybatis-Plus的API那么写SQL的时候注意不要带上表名后缀 Select(select * from t_order)ListOrder findALl();不要写成下面这样这样就是查单张表的5条记录了。 Select(select * from t_order_1)ListOrder findALl();参考 代码 https://gitee.com/learning_demo/sharding-jdbc https://gitee.com/xscodeit/xushu_springboot_demos/tree/master/Sharding 博客 Sharding-JDBC分库分表
http://www.pierceye.com/news/121300/

相关文章:

  • 东莞公司网站建设河南省专业做网站公司
  • 兰州彩票网站制作安阳区号是什么
  • 企业形象网站解决方案传统企业如果建立网站
  • 个人网站主页模板如何开一家网络营销公司
  • 网络管理系统密码吴中seo页面优化推广
  • 手绘风格的网站上海做网站cnsosu
  • 怎么做一个免费网站网站app的作用
  • iis 搭建网站品牌建设经验做法
  • 做国外的众筹网站有哪些wordpress小红书主题
  • 扩展名 网站百度资源共享链接分享组
  • 东莞市seo网络推广怎么样杭州seo关键词优化哪家好
  • 做网站用什么ui美观微信公众号调用WordPress
  • 用万网做网站企业做网站怎么做
  • 比较好的网站开发教学网站专业做视频的网站有哪些
  • 户外旅游网站模板网站开发需要看相关书籍
  • 建设高端网站的公司企业营销网站建设公司
  • 重庆建设工程信息网站重庆企业网站建设报价
  • 大兴模版网站开发公司哪家好unn建站
  • 工信部网站域名备案查询北京科技网站建设公司
  • 昆明做网站那家好自己动手做网站
  • 女生做seo网站推广北京海岸设计公司网站
  • 单位建设网站硬件拍摄制作宣传片企业
  • 网站做推广应该如何来做呢哪里推广柳州360优化
  • 淘宝网站的建设目的济宁网站建设 中企动力临沂
  • 小米商城网站建设浏览器广告投放
  • 网站制作论文致谢wordpress首页导航栏
  • 网站右下角调用优酷视频广告代码酒泉地网站推广
  • 武清做网站的wordpress选择php
  • 最潮流的网站开发脚本语言icp网站备案
  • 盘锦网站建设平台wordpress英文模板