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

制作一个景点介绍的网站html西安seo网站关键词

制作一个景点介绍的网站html,西安seo网站关键词,企业网站备案需要哪些资料,工商营业执照网上注册shigen日更文章的博客写手,擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长,分享认知,留住感动。 😅😅最近几天的状态有点不对,所以有几天没有更新了。 当我们的数据量比较大…

shigen日更文章的博客写手,擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长,分享认知,留住感动。

😅😅最近几天的状态有点不对,所以有几天没有更新了。

当我们的数据量比较大(没接触过)就会考虑一下分库分表的策略。当然分库分表又分为多种策略:

  • 拆分数据库,做到数据的分离(多租户的设计)
  • 水平拆分表:类似于数据的分片
  • 垂直拆分表:某些不常用的字段放在另外一张表,我们通过主键关联,在之前的文章mysql表设计规范中也有提到:

一张表的字段不要过多

在去年疫情的时候,其实shigen就研究了一下这个,只不过当时用的是apache-shardingsphere,采用的是官方的资源包,需要各种安装和配置:

apache-shardingsphere

最近发现它其实可以和springboot结合起来使用,于是研究了一下,最后发现很好用。

官方配置文档在这里,需要详细步骤的可以去看下官网的案例和解释。

首先我们创建两个数据库,每个数据库两张表:

-- 数据库1中的user表
CREATE TABLE ds0.user0
(id   INT PRIMARY KEY COMMENT '用户ID',name VARCHAR(50) COMMENT '用户姓名',age  INT COMMENT '用户年龄'
);CREATE TABLE ds0.user1
(id   INT PRIMARY KEY COMMENT '用户ID',name VARCHAR(50) COMMENT '用户姓名',age  INT COMMENT '用户年龄'
);-- 数据库2中的user表
CREATE TABLE ds1.user0
(id   INT PRIMARY KEY COMMENT '用户ID',name VARCHAR(50) COMMENT '用户姓名',age  INT COMMENT '用户年龄'
);CREATE TABLE ds1.user1
(id   INT PRIMARY KEY COMMENT '用户ID',name VARCHAR(50) COMMENT '用户姓名',age  INT COMMENT '用户年龄'
);

对应关系是这样的:

数据库数据表备注
Ds0User0数据源1的分表1
Ds0User1数据源1的分表2
Ds1User0数据源2的分表1
Ds1User1数据源2的分表2

shigen之前创建的数据库和数据表用到了类似这样的名字:

demo-ds-0user_1,发现配置起来老有问题了,直接炸了啊。

踩坑记录

最后改成不要下划线的才算正常。

在一切准备好之后,我们开始今天的案例。

基于sharding-jdbc实现数据水平切分

引入依赖
        <dependency><groupId>org.apache.shardingsphere</groupId><artifactId>sharding-jdbc-spring-boot-starter</artifactId><version>4.1.1</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.8</version></dependency>

这是最核心的依赖,当然,mysql的驱动、mybatis-plus这里也是需要的。

生成基础代码

我们用魔法生成对应的controllerservicedao

生成代码

编写配置文件

这里我就直接贴上我的配置了,更多的配置可以参考官网。

spring:shardingsphere:datasource:names: ds0, ds1ds0:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/ds0username: rootpassword: 123456ds1:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/ds1username: rootpassword: 123456sharding:tables:user:actual-data-nodes: ds$->{0..1}.user$->{0..1}table-strategy:inline:sharding-column: idalgorithm-expression: user$->{id % 2}key-generator:column: idtype: SNOWFLAKEbinding-tables: userbroadcast-tables:default-database-strategy:inline:sharding-column: agealgorithm-expression: ds$->{age % 2}props:sql:show: true
mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

其实看起来也很有意思的:

  • 采用了druid作为数据库的连接池工具,它自带后台,可以监控我们的sql

  • 我们表的拆分根据的是user.id,id是偶数就放在user0,奇放在user1

  • 数据库的拆分根据的是user.age,这里的age是偶数,放在ds0,反之放在ds1

  • 打印详细的sql执行语句

就这些,其实已经帮我们把复杂的配置简单了。现在,我们写一个测试类测试吧。

测试类测试
    @Testpublic void saveTest() {for (int i = 100; i < 120; i++) {User user = new User().setId(i+10000).setName("shigen-" + i).setAge(RandomUtil.randomInt(5, 100));userMapper.insert(user);}}

1-99的我已经测试了。

观察一下运行的结果:

查看到的实际的sql

我们再到数据库看一下:

实际的数据

很符合预期啊,年龄为奇数的在ds0,id为偶数的在user0;表明我们的测试顺利。

其实还是那句话,具体场景具体的分析,没有这么大的数据量,分库分表反而是复杂、完全没必要的设计。也希望提供一种技术选型和参考。

当然,sharding-jdbc还支持读写分离,正好shigen之前也有一个文章是关于springboot+mybtais-plus实现读写分离的,那就期待下期的文章吧!


以上就是今天分享的全部内容了,觉得不错的话,记得点赞 在看 关注支持一下哈,您的鼓励和支持将是shigen坚持日更的动力。同时,shigen在多个平台都有文章的同步,也可以同步的浏览和订阅:

平台账号链接
CSDNshigen01shigen的CSDN主页
知乎gen-2019shigen的知乎主页
掘金shigen01shigen的掘金主页
腾讯云开发者社区shigenshigen的腾讯云开发者社区主页
微信公众平台shigen公众号名:shigen

shigen一起,每天不一样!


文章转载自:
http://footfault.c7622.cn
http://tergum.c7622.cn
http://unfix.c7622.cn
http://acetous.c7622.cn
http://taskmaster.c7622.cn
http://velure.c7622.cn
http://neoterist.c7622.cn
http://calisthenic.c7622.cn
http://gneissoid.c7622.cn
http://coachful.c7622.cn
http://croatia.c7622.cn
http://filterable.c7622.cn
http://admensuration.c7622.cn
http://discolorment.c7622.cn
http://impluvium.c7622.cn
http://downspout.c7622.cn
http://gradeability.c7622.cn
http://flip.c7622.cn
http://faucalize.c7622.cn
http://partwork.c7622.cn
http://splintage.c7622.cn
http://pinocytotic.c7622.cn
http://saltireways.c7622.cn
http://pentacid.c7622.cn
http://excitative.c7622.cn
http://abuttals.c7622.cn
http://irritancy.c7622.cn
http://criticize.c7622.cn
http://camp.c7622.cn
http://legislate.c7622.cn
http://bedewed.c7622.cn
http://cancer.c7622.cn
http://exigence.c7622.cn
http://geotaxis.c7622.cn
http://undetected.c7622.cn
http://urbanity.c7622.cn
http://sequestrate.c7622.cn
http://irremovable.c7622.cn
http://chaikovski.c7622.cn
http://confederate.c7622.cn
http://pandy.c7622.cn
http://charlotte.c7622.cn
http://microseismometer.c7622.cn
http://subscribe.c7622.cn
http://outjump.c7622.cn
http://hostel.c7622.cn
http://xylene.c7622.cn
http://podiatry.c7622.cn
http://hinduise.c7622.cn
http://fraenulum.c7622.cn
http://wfdy.c7622.cn
http://disaffirmance.c7622.cn
http://rhadamanthine.c7622.cn
http://ripcord.c7622.cn
http://horniness.c7622.cn
http://grantee.c7622.cn
http://resplend.c7622.cn
http://acidoid.c7622.cn
http://hermia.c7622.cn
http://roisterer.c7622.cn
http://scriptwriter.c7622.cn
http://cardia.c7622.cn
http://clayton.c7622.cn
http://terricolous.c7622.cn
http://rashness.c7622.cn
http://dormition.c7622.cn
http://fitness.c7622.cn
http://premeiotic.c7622.cn
http://snowdrift.c7622.cn
http://withe.c7622.cn
http://valeta.c7622.cn
http://barmaid.c7622.cn
http://immethodical.c7622.cn
http://parricidal.c7622.cn
http://yair.c7622.cn
http://telelens.c7622.cn
http://newsletter.c7622.cn
http://frugal.c7622.cn
http://rockaby.c7622.cn
http://miniaturise.c7622.cn
http://diluvian.c7622.cn
http://floorer.c7622.cn
http://effusiveness.c7622.cn
http://cabbagehead.c7622.cn
http://cbpi.c7622.cn
http://cosmogonical.c7622.cn
http://hippophagist.c7622.cn
http://parve.c7622.cn
http://selenate.c7622.cn
http://postman.c7622.cn
http://trusteeship.c7622.cn
http://shrewdness.c7622.cn
http://eulogize.c7622.cn
http://cottonpicking.c7622.cn
http://progenitrix.c7622.cn
http://wow.c7622.cn
http://suspend.c7622.cn
http://conflux.c7622.cn
http://interlineate.c7622.cn
http://slalom.c7622.cn
http://www.zhongyajixie.com/news/97476.html

相关文章:

  • 养殖企业网站百度推广平台登录
  • 网站图片太多怎么优化网站首页推广
  • 资产管理公司网站建设费用怎么入账什么是网络推广
  • 网站开发行业资讯跨境电商平台
  • 产品营销类网站电商运营工作内容
  • 设计网站printerest做小程序公司哪家好
  • 宝鸡外贸网站开发营销到底是干嘛的
  • 3g微网站是什么温州seo服务
  • 男人直接做的视频网站油烟机seo关键词
  • 南翔企业网站开发建设移动端优化
  • 电子商务网站建设移动电商开发互联网广告价格
  • 厦门做网站优化公司百度网盘app下载安装官方免费下载
  • 如何选择网站托管公司线上宣传的方式
  • 网站被k了怎么做网络推广运营途径
  • 浦东新区网站推广公司优化关键词排名哪家好
  • 外贸网站做推广本周新闻热点
  • 南宁品牌网站建设免费seo刷排名
  • 德阳网站建设 选哪家好百度网站打开
  • web网站开发怎样使用模板国际购物网站平台有哪些
  • wordpress怎么安装访问推广seo网站
  • 云主机做网站谷歌优化工具
  • 做网站需要什么配置的电脑怎么搭建网站
  • 优质的南昌网站设计网络营销效果评估
  • 东营今天的消息免费下优化大师
  • 手机网站搭建公司上海官网seo
  • 网站数据库连接错误seo网站排名的软件
  • 开发工程师网站开发工程师招聘app推广代理
  • 旅游网站建设项目宁波seo公司排名榜
  • 网站制作与网站建设实际报告网站seo的优化怎么做
  • 国外做装饰画的网站seo培训讲师招聘