`
aa87963014
  • 浏览: 153991 次
  • 性别: Icon_minigender_1
  • 来自: 布尼塔尼亚
社区版块
存档分类
最新评论

freyja2多数据源版本

 
阅读更多

多数据源在之前的单数据源需要改动部分配置

 

如果要分成2个数据、1个表

实际上会有3个数据库

freyja  freyja_0 freyja_1

原库保留 freyja的t_user 要进行分库、分表

就要在 freyja_0、freyja_1 创建 t_user_0(分1个表 就创建一个 2个表就创建2个,t_user_0、t_user_1)

 

USE `freyja_0`;
DROP TABLE IF EXISTS `t_user_0`;
CREATE TABLE `t_user_0` (
  `uid` int(11) NOT NULL AUTO_INCREMENT,
  `open_Id` varchar(255) DEFAULT NULL,
  `nickName` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`uid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

 

USE `freyja_1`;

DROP TABLE IF EXISTS `t_user_0`;
CREATE TABLE `t_user_0` (
  `uid` int(11) NOT NULL AUTO_INCREMENT,
  `open_Id` varchar(255) DEFAULT NULL,
  `nickName` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`uid`)
) ENGINE=InnoDB AUTO_INCREMENT=1000001 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;

 

为了保证实体主键唯一,每个表的自动增长量不同。根据 spring-db 配置文件里面的

	<bean id="myShardingStrategy" class="com.guyu.data.core.dao.MyShardingStrategy">
		<property name="tableNum" value="1" />
		<property name="dbNum" value="2" />
		<property name="idSubNum" value="1000000" />
	</bean>

来确定怎么切分、主键自动增长量为多少。

被切分的表对应的实体需要标识为 切分

@Table(name = "t_user", isSubTable = true)
public class User  {

 isSubTable =true

同时用annotation标识出根据哪个字段来切分

	@Column(name = "open_id")
	@SubColumn(isSubColumn = true)
	private String openId;

 isSubTable = false来关闭切分

 

准备完之后,freyja 就会通过数据源切换来访问数据。 一共是3个数据源,1个默认 2个切分。

User 数据就只会保留在 freyja_0 freyja_1 里面。 UserProperty 没有被切分就只是用 freyja 本库数据。

 

 附件就是 多数据源版本代码,sql在config里面。

 

ps:多数据源因为没有实际使用需求所以没有过多测试等等,具体的使用方法、原理之前文章应该有给出介绍大笑

 

0
0
分享到:
评论

相关推荐

    freyja v2版本发布

    "Freyja v2版本发布"标志着这个开源工具的最新迭代,它主要专注于提供源码管理和分析功能。在本文中,我们将深入探讨Freyja的新特性、改进以及它如何帮助开发者提高工作效率。 首先,Freyja作为一个源码工具,其v2...

    准备了个freyja实例项目(单数据源版)

    "单数据源版"指的是该项目使用单一的数据存储,而不是多数据源架构。这通常在初期项目或简单应用中常见,以便简化数据库管理和数据一致性。 描述中的 "NULL" 没有提供额外的信息,但我们可以从博客链接推测,该项目...

    freyja更新

    总结起来,"Freyja更新"涉及到的知识点包括开源文化、软件工具的更新与维护、源代码管理和版本控制、软件开发流程、以及如何适应和利用新版本的特性和改进。如果想深入了解,可以阅读提供的博文链接,获取更详尽的...

    freyja最重要的一个功能完成

    由于没有具体的功能描述,我们可以假设Freyja可能涵盖了多种工具常见的功能,比如版本控制、构建管理、代码质量检查、性能分析等。 在压缩包文件名称列表中,只有一个文件名 "freyja" 提供,这可能是指整个项目的源...

    freyja 将引入另外一项功能大幅提高服务器性能

    这意味着 freyja 可能是一个开源工具,提供源代码供开发者研究、定制和改进。"工具" 指出它可能是用于服务器管理、监控、优化或自动化等目的的实用程序。 由于没有具体的文章内容,我将基于一般服务器性能优化的...

    Freyja的查询缓存功能详解

    NULL 博文链接:https://freyja.iteye.com/blog/1278881

    freyja 功能基本完毕

    1. **源码管理**:开源工具通常涉及到源码管理和版本控制,如Git,所以Freyja可能与Git集成,允许用户管理代码仓库。 2. **自动化**:作为一个工具,Freyja可能包含自动化脚本编写和执行的功能,例如支持CI/CD...

    freyja-sub-ocr-electron:用于 Freyja 字幕 OCR 提取器的 Nodejs + 电子用户界面

    从页面下载最新版本的Freyja并将其解压缩。 从下载模型。 下载所有txt和torchscript文件,并将这些文件放入&lt;app&gt;/models/文件夹中。 运行freyja.exe 。 如果您有Nvidia GPU,则启用“ Enable CUDA选项,否则禁用该...

    freyja:快速博客系统

    FREYJA freyja是一个轻量级的blog系统,使用vue-ssr,首屏在服务端渲染,之后的所有请求都由浏览器自行路由。...配合http2多路复用,首屏渲染完成时间可以控制在300ms以内(公网环境下,网络延迟约30ms),

    freyja:将样式作为道具传递给组件

    您提供一个接受组件props和应用程序theme的函数,并返回样式图( (theme, props, helpers) =&gt; ({key1: style, key2: style}) ), useStyles将返回类名的地图(像{key1: className, key2: className} )。...

    matlab有些代码不运行-Freyja-Simulator:用于表示多直升机,控制器,附加对象(例如电缆)等的MATLAB/Simulink

    matlab有些代码不运行Freyja仿真器 在MATLAB / Simulink(TM)和SimScape(TM)框架内构建的,适用于多直升机系统的高保真物理模拟器。 Freyja的库元素允许对连接多轴直升机和各种其他对象(例如电缆)的运动树进行...

    jre-超级精简普通版版

    标题“jre-超级精简普通版版”指的是一个针对...通过阅读博客文章,我们可以获取更多关于如何构建、优化以及使用这个特殊版本JRE的信息。对于那些需要节省系统资源的项目或环境,这个版本的JRE可能是理想的解决方案。

    自己搭的一个springmvc+hibernate+freemarker框架,参照疼讯的iweibo2

    NULL 博文链接:https://freyja.iteye.com/blog/1167392

    Magic-Reality:Magic Reality Mod Pack (Minecraft) 的官方 Github 页面

    魔幻现实Magic Reality Mod Pack (Minecraft) 的官方 Github 页面#Mods 模组作者版本苹果核Squeek502 1.1.0 水产养殖Shadowclaimer, Lclc98, Freyja, Rebelkeithy 1.2.5.8 护甲状态HUD 业务员1.28 背包埃达莫斯2.0.1...

    Freislenbator-crx插件

    回到Freislenbator-crx,这款插件的名称可能源于一种幽默或网络文化元素,"Freislenbator"可能是创造者为插件赋予的虚构名称,与“Freyja”(北欧神话中的爱与美的女神)或者“free image”(免费图片)有关,但具体...

Global site tag (gtag.js) - Google Analytics