数据库中数据的id生成和算法
id生成策略
自增主键
一般使用整数类型的id可使用自增主键的策略去生成id
优点:
- 简单、易于使用和理解。
- 保证唯一性,无需额外的查询操作。
- 提高查询性能,因为ID是有序的,且支持索引。
缺点:
- 不适用于分布式系统,因为每个节点都需要维护一个独立的计数器,可能会导致冲突和性能问题。
- 暴露了表中的数据增长模式,可能导致信息泄漏和数据分析的问题。
使用方法:可使用Mybatis-Plus
UUID(Universally Unique Identifier)
优点:
- 全局唯一性,可以在不同的数据库服务器上生成,确保全局唯一性。
- 分布式支持,独立性。
缺点:
- 占用较多的存储空间,因为UUID是一个128位的数字,通常以32位的十六进制数表示。
- 无序性,可读性较低。
适用场景:适用于需要分布式支持、全局唯一性和独立生成ID的场景,特别是在没有数据库连接的情况下。
使用方法:可使用Hutool工具中的IdUtil生成
组合ID
原理:根据多个字段的组合来生成唯一的ID。通常使用字段的值进行哈希运算,以生成一个唯一的标识符。
优点:可以根据业务逻辑自定义ID生成规则。
缺点:需要确保组合字段的唯一性,否则可能导致ID冲突。
适用场景:适用于需要根据多个字段组合来生成唯一ID的场景。
雪花算法(Snowflake)
原理:生成一个64位的long型数字作为全局唯一ID。它包含时间戳、工作机器ID、数据中心ID和序列号等部分。
优点:
- 支持分布式环境,生成的ID有序且唯一。
- 包含时间戳信息,可以用于排序。
缺点:
- 依赖于机器的唯一标识,不同机器之间的时间同步问题可能导致ID重复。
- 需要确保工作机器ID和数据中心ID的唯一性。
适用场景:适用于需要分布式支持、有序和唯一ID的大规模系统,如微服务架构、分布式数据库等。
获取id的问题
如果使用mybatis-plus框架时,当使用@TableId指定某个id的生成策略后,在将该数据插入数据库后,该id会自动保存在刚操作过的实体类中,可直接读取
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
数据库中数据的id生成和算法
id生成策略 自增主键 一般使用整数类型的id可使用自增主键的策略去生成id 优点: 简单、易于使用和理解。保证唯一性,无需额外的查询操作。提高查询性能,因为ID是有序的,且支持索引。 缺点: 不适用于分布式系统&a…...
![](https://img-blog.csdnimg.cn/direct/475a35053fbb4b4e98d827c8d699c003.jpeg)
SystemVerilog Assertion精华知识
前言 断言主要用于验证设计的行为。断言也可用于提供功能覆盖率,并标记用于验证的输入激励不符合假定的需求。 在验证平台中,通常进行三个主要任务: 产生激励功能检查功能覆盖率度量 在当今的设计越来越复杂情况下,像波形调试…...
![](https://img-blog.csdnimg.cn/direct/68002af9baeb4edb9e138aefb88ecca2.png)
pdf怎么压缩到2m以内或5m以内的方法
PDF作为一种广泛使用的文档格式,已经成为我们工作和生活中不可或缺的一部分。然而,有时候PDF文件内存会比较大,给我们的存储和传输带来了很大的不便。因此,学会压缩 PDF 文件是非常必要的。 打开"轻云处理pdf官网"&…...
![](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=https%3A%2F%2Fimg2.imgtp.com%2F2024%2F05%2F27%2FecnWy72K.jpg&pos_id=img-efHg69gN-1719050367990)
Butter Knife 8
// 部分代码省略… Override public View getView(int position, View view, ViewGroup parent) { ViewHolder holder; if (view ! null) { holder (ViewHolder) view.getTag(); } else { view inflater.inflate(R.layout.testlayout, parent, false); holder new ViewHolde…...
![](https://img-blog.csdnimg.cn/direct/145b71164f4546b89f5f21df5ef95986.png)
AMSR/ADEOS-II L1A Raw Observation Counts V003地球表面和大气微波辐射的详细观测数据
AMSR/ADEOS-II L1A Raw Observation Counts V003 简介 AMSR/ADEOS-II L1A Raw Observation Counts V003数据是由日本航空航天研究开发机构(JAXA)的AMSR (Advanced Microwave Scanning Radiometer)仪器收集的一组原始观测计数数据。这些数据是从ADEOS-I…...
![](https://img-blog.csdnimg.cn/direct/35e390749415432aa319580d44556b58.png)
MySQL之复制(十一)
复制 复制的问题和解决方案 数据损坏或丢失的错误 当一个二进制日志损坏时,能恢复多少数据取决于损坏的类型,有几种比较常见的类型: 1.数据改变,但事件仍是有效的SQL 不幸的是,MySQL甚至无法察觉这种损坏。因此最好还是经常检查…...
![](https://img-blog.csdnimg.cn/img_convert/fc74563092fc8198377fdd5aaa789509.png)
深入源码设计!Vue3.js核心API——Computed实现原理
如果您觉得这篇文章有帮助的话!给个点赞和评论支持下吧,感谢~ 作者:前端小王hs 阿里云社区博客专家/清华大学出版社签约作者/csdn百万访问前端博主/B站千粉前端up主 此篇文章是博主于2022年学习《Vue.js设计与实现》时的笔记整理而来 书籍&a…...
![](https://img-blog.csdnimg.cn/direct/52575a1eba634caeab76612fc7180d75.gif#pic_center)
驾考小技巧:老北京布鞋!距离高考出分还剩3天,我却看到有些孩子已经拿了“满分”——早读(逆天打工人爬取热门微信文章解读)
我20年驾校4000多块钱,你呢? 引言Python 代码第一篇 洞见 距离高考出分还剩3天,我却看到有些孩子已经拿了“满分”第二篇 视频新闻结尾 引言 昨天的文章顺利发出 看来“梅西” 这两个字在我们这边 不是敏感词 只是很多个罗粉搞得有点过头了 …...
![](https://www.ngui.cc/images/no-images.jpg)
java-正则表达式 2
7. 复杂的正则表达式示例(续) 7.1 验证日期格式 以下正则表达式用于验证日期格式,例如YYYY-MM-DD。 import java.util.regex.*;public class RegexExample {public static void main(String[] args) {String[] dates {"2023-01-01&q…...
![](https://www.ngui.cc/images/no-images.jpg)
hadoop常见简单基础面试题
文章目录 hadoop简单基础面试题1. 请说下 HDFS 读写流程2. HDFS 在读取文件的时候,如果其中一个块突然损坏了怎么办3. HDFS 在上传文件的时候,如果其中一个 DataNode 突然挂掉了怎么办4. NameNode 在启动的时候会做哪些操作5.Secondary NameNode 了解吗&…...
![](https://www.ngui.cc/images/no-images.jpg)
泄漏检测(LDAR)在建档和检测过程中造假套路和不规范行为
第一章 建档环节造假和不规范 一、 企业行为: 企业为了节约检测费,采取部分建档,部分密封点检测的行为 二、 第三方检测公司不规范行为: 1、台账信息不准确,密封点命名不准确 &…...
![](https://img-blog.csdnimg.cn/direct/b6f1445972ea4eaaa79ae38eb876e2a8.png)
Android CTS环境搭建
CTS即Compatibility Test Suite意为兼容性测试,是Google推出的Android平台兼容性测试机制。其目的是尽早发现不兼容性,并确保软件在整个开发过程中保持兼容性。只有通过CTS认证的设备才能合法的安装并使用Google market等Google应用。 搭建CTS测试环境需…...
![](https://www.ngui.cc/images/no-images.jpg)
比较Zig、Rust和C++
比较Zig、Rust和C这三种编程语言,我们可以从以下几个关键维度来进行: 设计理念 表格 语言 设计理念 Zig 简洁性、模块化、避免常见错误 Rust 内存安全、并发性、性能 C 性能优化、资源控制、可扩展性 内存安全 Zig通过严格的编译时检查、可选…...
![](https://img-blog.csdnimg.cn/direct/72cc4d0c706e42d3817ed38dd376a03e.gif)
路由的params参数,命名路由,路由的params参数,命名路由
上篇我们讲了vue路由的使用 今天我们来讲vue中路由的嵌套,路由的params参数,命名路由 一.路由的params参数 1.配置路由规则,使用children配置项: router:[{path:/about,component:About,},{path:component:Home,//通过children配置子路由c…...
![](https://www.ngui.cc/images/no-images.jpg)
java:CompletableFuture的简单例子
java:CompletableFuture的简单例子 package com.chz.myTest;import lombok.extern.slf4j.Slf4j;import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletionStage; import java.util.concurrent.ExecutionException; import java.uti…...
![](https://www.ngui.cc/images/no-images.jpg)
element的table获取当前表格行
需求:验证表格同一行的最低限价不能超过销售定价 思路:先获取当前行table的index,然后在做大小比较 1.局部html <el-table-column label"销售定价(元)" min-width"200px"><template slot"header"&…...
![](https://img-blog.csdnimg.cn/direct/192a017d5f8e4c5e849410451e611e34.png)
html做一个分组散点图图的软件
在HTML中创建一个分组散点图,可以结合JavaScript库如D3.js或Plotly.js来实现。这些库提供了强大的数据可视化功能,易于集成和使用。下面是一个使用Plotly.js创建分组散点图的示例: 要添加文件上传功能,可以让用户上传包含数据的文…...
![](https://www.ngui.cc/images/no-images.jpg)
【SQL】UNION 与 UNION ALL 的区别
在 SQL 中,UNION 和 UNION ALL 都用于将两个或多个结果集合并为一个结果集,但它们在处理重复数据方面有显著区别。以下是它们的详细区别: 1. UNION UNION 操作符用于合并两个或多个 SELECT 语句的结果集,并自动去除结果集中重复…...
![](https://img-blog.csdnimg.cn/direct/0acc095fcdfe4aa59ee4596c98adbbee.png)
分类判决界面---W-H、H-K算法
本篇文章是博主在人工智能等领域学习时,用于个人学习、研究或者欣赏使用,并基于博主对人工智能等领域的一些理解而记录的学习摘录和笔记,若有不当和侵权之处,指出后将会立即改正,还望谅解。文章分类在AI学习笔记&#…...
![](https://img-blog.csdnimg.cn/direct/d8225167d69c4e028830580b73447340.jpeg)
Python基础教程(三十):math模块
💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 💝Ὁ…...
![](https://img-blog.csdnimg.cn/img_convert/4d3fa1a94f7490439e438e8792c491e8.jpeg)
你只是重新发现了一些东西
指北君关于另外一条思维路径的发现。 "自以为是"的顿悟时刻 有很多时候,我会"自以为是"的发现/发明一些东西。这种"自以为是"的时刻通常还带有一些骄傲自豪的情绪。这种感觉特别像古希腊博学家阿基米德 在苦思冥想如何测量不规则物体…...
![](https://img-blog.csdnimg.cn/direct/5b11be156f4e49fda84e9fe4ec19f05d.png)
【英伟达GPU的挑战者】Groq—AI大模型推理的革命者
目录 引言第一部分:Groq简介第二部分:Groq的特点与优势1、高性能推理加速2、近存计算技术3、专用ASIC芯片设计4、低延迟与高吞吐量5、成本效益分析6、易用性与集成性7、软件与硬件的协同设计 第三部分:Groq的使用指南1、准备工作2、简单使用样…...
![](https://img-blog.csdnimg.cn/direct/42043c7098b64c63bf1d7a82ae2cb911.png)
Python学习路线
Python学习路线 领取资料 一、Python基础知识 Python入门:了解Python的安装方法、如何运行Python程序以及交互模式的使用,同时学习注释的添加方法。 数据类型:掌握Python中的各种数据类型,包括数字、布尔值、字符串、列表、元…...
![](https://www.ngui.cc/images/no-images.jpg)
C++ std::forward()
在线调试网站: https://wandbox.org/ #include <iostream> #include <thread> #include <mutex> void func(int &&args) {std::cout << args << std::endl; }int main () {int a 10;func(20); …...
![](https://img-blog.csdnimg.cn/direct/28edbba515494195b2405823ebde7468.png)
常见的8种排序(含代码):插入排序、冒泡排序、希尔排序、快速排序、简单选择排序、归并排序、堆排序、基数排序
时间复杂度O(n^2) 1、插入排序 (Insertion Sort) 从第一个元素开始,该元素可以认为已经被排序;取出下一个元素,在已经排序的元素序列中从后向前扫描;如果该元素(已排序)大于新元素,将该元素移到…...
![](https://img-blog.csdnimg.cn/direct/6bc4a880fa714b7b81c425bf16f1afb4.png)
go语言day2
使用cmd 中的 go install ; go build 命令出现 go cannot find main module 错误怎么解决? go学习-问题记录(开发环境)go: cannot find main module; see ‘go help modules‘_go: no flags specified (see go help mod edit)-CSDN博客 在本…...
![](https://img-blog.csdnimg.cn/direct/a98c1c234384468c9fe674f628ebac52.png)
vue echarts画多柱状图+多折线图
<!--多柱状图折线图--> <div class"echarts-box" id"multiBarPlusLine"></div>import * as echarts from echarts;mounted() {this.getMultiBarPlusLine() },getMultiBarPlusLine() {const container document.getElementById(multiBar…...
![](https://img-blog.csdnimg.cn/direct/0262b350c194473bb416eacf70aa39ac.png)
cesium for unity 打包webgl失败,提示不支持
platform webgl is not supported with HDRP use the Vulkan graphics AR instead....
![](https://www.ngui.cc/images/no-images.jpg)
python开发基础——day7 序列类型方法
一、初识序列类型方法 序列类型的概念:数据的集合,在序列类型里面可以存放任意的数据,也可以对数据进行更方便的操作,这个操作是叫增删改查(crud) ( 增加(Creat),读取查询(Retrieve),更新(Update)…...
![](https://www.ngui.cc/images/no-images.jpg)
用java写一个二叉树翻转
class TreeNode {int val;TreeNode left, right;TreeNode(int val) {this.val val;left right null;} }public class BinaryTree {TreeNode root;// 递归翻转二叉树public TreeNode invertTree(TreeNode root) {if (root null) {return null;}// 递归翻转左子树和右子树Tre…...
![](https://img-blog.csdnimg.cn/img_convert/a3dbec3f74c864287cffb907c7c21701.png)
xiu主题做的网站/seo软件定制
一、产业链概述 砂石是砂子和石子的统称,因其良好的硬度和稳定的化学性质,常常作为优质的建筑材料、混凝土原料而广泛应用于房屋、道路、公路、铁路、工程等领域。砂石产业的上游包括原材料、相关机械设备、爆破材料等,中游是砂石的处理环节&…...
![](/images/no-images.jpg)
长沙优秀网站建设/seo点击软件手机
算法提高 陶陶摘苹果2 时间限制:1.0s 内存限制:256.0MB问题描述陶陶家的院子里有一棵苹果树,每到秋天树上就会结出n个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的…...
![](/images/no-images.jpg)
小说类网站功能建设/关键词排名代做
背景:我想知道如何实现高级排序函数,我可以将它作为元组元素传递给python‘sorted’函数的key参数.这是一个描述我想做的事情的例子:class Book:def __init__(self, name, author, language, cost):self.name nameself.author authorself.languagelang…...
![](/images/no-images.jpg)
可以自己做直播网站吗/百度平台订单查询
具名插槽 //子组件 <slot name"footer"></slot> //父组件 <child1><span slot"footer"><p>我是页尾的具体内容</p></span></child1>匿名插槽 子组件 <slot></slot> 父组件 <child>多…...
![](https://img-blog.csdnimg.cn/img_convert/058e22dc206e596f2629757e5c828530.png)
怎么自己做卡盟网站/百度关键词查询工具免费
点击上方“蓝色字”可关注我们!暴走时评:2月8日的推文显示,备受期待的由洲际交易所(ICE)运营的数字资产平台Bakkt已经结束了其首次收购。通过收购RCG的某些资产,Bakkt希望:“RCG卓越的传统、文化…...
![](/images/no-images.jpg)
网络规划是干什么的/seo的作用
大家都知道,用document.getElementById(‘element).style.xxx可以获取元素的样式信息,可是它获取的只是DOM元素style属性里的样式规则,对于通过class属性引用的外部样式表,就拿不到我们要的信息了。 DOM标准里有个全局方法getComp…...