自增主键与UUID的优缺点

推荐系统:NDCG评价指标及其Python实现方法 除了推荐任务,在二分类任务中,也可以计算该指标,代码如下: # ndcg def get_dcg(y_pred, y_true, k): #注意y_pred与y_true必须是一一对应的,并且y_pred越大越接近label=1(用相关性的说法就是,与label=1越相关) df = pd.DataFrame({"y_pred":y_pred, "y_true":y_true}) ... 阅读详情

自增主键

自增ID是在设计表时将id字段的值设置为自增的形式,这样当插入一行数据时无需指定id会自动根据前一字段的ID值+1进行填充。在MySQL数据库中,可通过sql语句AUTO_INCREMENT来对特定的字段启用自增赋值 使用自增ID作为主键,能够保证字段的原子性.

优点

  1. 数据库自动编号,速度快,而且是增量增长,按顺序存放,对于检索非常有利;
  2. 数字型,占用空间小,易排序,在程序中传递也方便;
  3. 如果通过非系统增加记录时,可以不用指定该字段,不用担心主键重复问题。

缺点

  1. 因为自动增长,在手动要插入指定ID的记录时会显得麻烦,尤其是当系统与其它系统集成时,需要数据导入时,很难保证原系统的ID不发生主键冲突(前提是老系统也是数字型的)。特别是在新系统上线时,新旧系统并行存在,并且是异库异构的数据库的情况下,需要双向同步时,自增主键将是你的噩梦;
  2. 在系统集成或割接时,如果新旧系统主键不同是数字型就会导致修改主键数据类型,这也会导致其它有外键关联的表的修改,后果同样很严重;
  3. 若系统也是数字型的,在导入时,为了区分新老数据,可能想在老数据主键前统一加一个字符标识(例如“o”,old)来表示这是老数据,那么自动增长的数字型又面临一个挑战。

UUID

UUID含义是通用唯一识别码 (Universally Unique Identifier),指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。通常平台会提供生成的API。换句话说能够在一定的范围内保证主键id的唯一性。

优点

出现数据拆分、合并存储的时候,能达到全局的唯一性

缺点

  1. 影响插入速度, 并且造成硬盘使用率低
  2. uuid之间比较大小相对数字慢不少, 影响查询速度。
  3. uuid占空间大, 如果你建的索引越多, 影响越严重
8、音频运行时系统的架构设计 本文深入探讨了音频运行时系统的分层设计及其优势,包括逻辑层和物理层的功能划分。通过分层设计,开发者可以更轻松地管理和优化音频资源,确保其在不同平台上的高效运行。文章还介绍了平台适配与优化、错误处理与调试以及未来发展方向等内容,为开发者提供了宝贵的参考和指导。 阅读详情

相关推荐

Ansys Zemax与Speos协同设计:从HUD光学优化到驾驶环境可视化全流程解析

本文深入解析了如何利用Ansys Zemax与Speos进行协同设计,实现从HUD光学系统核心优化到驾驶环境可视化验证的全流程。文章强调了HUD设计是光学性能与视觉感知的深度耦合,通过Zemax进行精密光学设计,再利用Speos进行系统级仿真与感知模拟,最终完成从虚拟到现实的闭环验证,有效提升HUD产品的开发效率与可靠性。

weixin_29199873的博客 244

TiDB实战篇-表结构设计

TiDB实战篇-表结构设计

S1124654的博客 1851

信号处理中的滤波器的阶数和谐波的理解

最近在读paper的时候,遇到了一些以前遗忘的问题,先重新查找,记录在这里,以备不时之查看。 我相信一定有小伙伴跟我有过一样的疑惑,那就是我们在使用滤波器的时候,总是遇到滤波器的阶数这个概念参数,我们很多都是根据别的paper里的设置,设置自己的科研参数,其实并不是很理解其中的含义: 其实我们常用的阶数N的意思是: 滤波器的阶数,就是指过滤谐波的次数,一般来讲,同样的滤波器,其阶

Miracle.Zhao的博客 2万+

mysql主键自增和UUID的区别

1、自增主键 在进行数据库插入时,位置相对固定(B+树中的右下角)增加数据插入效率,减少插入的磁盘IO消耗,每页的空间在填满的情况下再去申请下一个空间,底层物理连续性更好,能更好的支持区间查找 2、UUID 由于UUID是随机生成的 插入时位置具有一定的不确定性,无序插入,会存在许多内存碎片,内存空间的占用量也会比自增主键大,区间查找也没自增主键性能优 3、测试说明 另外,附一个测试表给你们,表名带uuid的就是用uuid作为主键。大家看一下就知道性能差距了: 4、总结 InnoDB使用聚集索引,数据记录

ourLang 2万+

3.5.3以太网ETH TC8-PMA物理层测试

英文原版-OA_Automotive_Ethernet_ECU_TestSpecification_Layer_1_100BASE-T1_v3.0.pdf。PMA测试时各个测试项目所进入的测试模式不同,如TX_01对应测试模式1;TX_04对应测试模式5;例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。TX_07对应测试模式5;物理层测试主要分为两部分:IOP测试(包括链接时间,信号质量,线路诊断),PMA测试。

qq_28664971的博客 7696

HTML5期末大作业:水果超市网站设计——水果超市(6页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 网购商城设置网页

HTML5期末大作业:水果超市网站设计——水果超市(6页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 网购商城设置网页 常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 明星、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 军事、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他 等网页设计题目, A+水平作业, 可满足大

1714

TIDB 建表时对关键字的处理

在设计表结构时用到了TIDB的关键字作为存储字段,一直不能建表成功,经过查询发现需要将其采用键盘1前面的那个波浪线下面的类似单引号(·)的符号引起来。其他的单引号、双引号都无效 CREATE TABLE ACLINE_NEED ( ID NUMERIC(20,0) NOT NULL, CODE VARCHAR(32), `DESCRIBE` VARCHAR(64) PRIMARY ...

okhymok的博客 1210

具身智能落地实战:制造业、物流与电力的工业级方案设计

具身智能是一种融合感知、推理与物理执行的智能范式,其核心在于构建具备因果建模能力、多模态闭环反馈和实时动作规划的行动主体。区别于通用AI或传统自动化,它依托多模态大模型、高精度力觉/触觉传感及Sim2Real仿真技术,实现对真实物理环境的深度理解与自适应交互。技术价值体现在可解释性决策、毫秒级跨模态协同与零停机容错能力,已规模化应用于制造业质检、物流破损鉴定、电力绝缘子巡检等强约束工业场景。本文聚焦‘行业应用方案解决方案’这一高频搜索需求,系统拆解从工位筛选、分层架构设计到72小时现场交付的全链路工程方法论

weixin_30952479的博客 300

uuid和自增id做主键哪个好,为什么?

大的索引会占用更多的磁盘空间,导致缓存命中率下降,进而增加了磁盘I/O的需求。它可以使用不同的算法生成,比如基于时间戳的 UUID(version 1)和随机数生成的 UUID(version 4)等。● 不适合范围查询:因为不是自增的,所以在做范围查询的时候是不支持的。(后插入的UUID在排序时可能比前面的要小,在做范围查询的时候可能会出现数据重复或者漏数据的情况)● 不方便展示:主键ID有的时候会需要在系统间、或者前台页面展示,如果是UUID的话,就因为比较长、并且没有任何业务含义,所以不方便展示。

weixin_56353201的博客 936

车载软件架构 —— AUTOSAR Vector SIP包(三)

### 上一篇文章中介绍了AUTOSAR基础软件供应商Vector公司的开发工具链,本文将继续介绍Vector公司的AUTOSAR产品。 ### -> 1、Vector SIP包中的StartApplication ### -> 2、StartApplication如何开始使用

Soly_kun的博客 829

9、工业数据管理:Historian、ERP、MES与资产模型解析

本文深入解析了工业数据管理中的核心概念与技术,包括Historian数据库、ERP和MES系统以及资产模型。文章详细介绍了Historian数据库的特性、架构分类、数据采集方式及时间序列处理能力,同时探讨了ERP和MES系统的功能与优势,特别是MES在生产执行中的重要作用。资产模型部分结合ISA-95和ISA-88标准,阐述了工业资产的层次化建模方法。此外,文章还分析了各系统之间的协同关系、面临的挑战及应对策略,并展望了未来工业数据管理的发展趋势,如云原生技术、人工智能融合和工业物联网的应用。

pz89012345的博客 144

uuid作为主键和自增主键的优缺点

uuid和自增主键到底怎么选择

qq_63945982的博客 1269

使用IGV软件可视化染色质可及性

染色质可及性(chromatin accessibility)是指DNA序列在植物细胞核中的可访问程度。染色质是由DNA和蛋白质组成的复杂结构,它紧密地包裹在细胞核中,并影响基因的表达和功能。染色质可及性研究着重于理解染色质是否容易被转录因子和其他调控蛋白访问,从而影响基因的表达。文献中,常常会有下面这种图片来表示基因组上的一些区域或基因的染色质开放性强弱。一般情况下,我们可以使用IGV软件或GSA-man软件进行可视化,两者的操作相似。这里,以IGV软件为例,演示如何对染色质可及性进行可视化。

沉香best的博客 3724

数据库主键uuiD和自增主键优缺点

特性UUID 主键自增主键唯一性全球唯一在单个数据库中唯一,需要额外处理分布式环境存储空间较大(16 字节)较小(通常为 4 字节或 8 字节)性能插入性能较低(由于随机生成导致索引分散)插入性能较高(顺序插入,索引性能较好)可读性较差(较长,难以记忆)较好(简单数字,易于理解)适用场景分布式系统、跨平台、跨数据库单机数据库、性能要求高的应用安全性难以推测数据插入顺序,较为安全可推测插入顺序,可能暴露业务信息。

C18298182575的博客 1027

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

自增主键 ID (int)和 UUID(varchar)的优缺点

自增ID(int): 一般在单机项目,或者小型项目里,使用 自增 ID(int):优点: (1)数据库自动编号,速度快,而且是增量增长,按顺序存放,对于检索非常有利; (2)数字型,占用空间小,易排序,在程序中传递也方便; (3)如果通过非系统增加记录时,可以不用指定该字段,不用担心主键重复问题。 其实它的缺点也就是来自其优点,缺点如下: (1)因为自动增长,在手动要插入指定ID的记录时...

进阶的球儿 7275

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

mysql 自增主键 好处_UUID 好处 以及 自增主键 的优缺点

自增主键自增ID是在设计表时将id字段的值设置为自增的形式,这样当插入一行数据时无需指定id会自动根据前一字段的ID值 1进行填充。在MySQL数据库中,可通过sql语句AUTO_INCREMENT来对特定的字段启用自增赋值 使用自增ID作为主键,能够保证字段的原子性.优点数据库自动编号,速度快,而且是增量增长,按顺序存放,对于检索非常有利;数字型,占用空间小,易排序,在程序中传递也方便;如果通过...

weixin_35229677的博客 1848

为什么推荐使用自增主键?使用UUID作为主键的优缺点是什么?

摘要: 推荐自增主键(BIGINT)因其顺序写入减少页分裂、磁盘空间利用率高、范围查询性能强、索引体积小且B+树更矮、高并发写入稳定。UUID(建议BINARY(16)存储)的优点是全局唯一、防爬虫泄露、去中心化生成,但存在页分裂严重、索引膨胀、随机IO性能差、无业务顺序价值、高并发写入性能下降等缺点。选型建议:单机用自增,分布式用雪花算法,强去中心化场景用二进制UUID。优化方向:避免CHAR(36),优先二进制存储或有序ID方案。

zr333133的博客 319

mysql 主键自增_还再使用数据库自增主键吗?

加油站: 在数字经济时代,数据的重要性堪比石油。大数据的四个特点:Volume(数据体量大)、Variety(数据类型繁多)、Velocity(处理速度快)、Value(商业价值高),只要合理利用数据并对其进行准确的分析,将会给企业带来很高的价值回报。前言:部分企业使用mysql数据库新建表时选择自增主键id,但其实当长期使用时会造成一定的问题,比如: 单点故障,自增上限,数据迁...

weixin_39606575的博客 474

如何设置MySQL 分布式架构主键ID,为什么不能使用自增ID和UUID做主键,使用雪花算法有什么优缺点?

如何设置MySQL 分布式架构主键ID,为什么不能使用自增ID和UUID做主键,使用雪花算法有什么优缺点?

weixin_42501031的博客 588

怎样实现 mybatis 增加(insert)数据时返回自增ID

最近做的项目都是存的自增ID,就遇到了一个问题,存到数据库后,怎样马上得到他的主键ID?我之前用的都是UUID,这样的话我能得到主键ID,但是自增的话,就得不到了,我就蒙了,但是今天同事告诉了我一个好的解决方法,分享给大家!首先说一下自增ID和UUID各自的优缺点: 自增主键 自增ID就是在设计标的时候设置AUTO_INCREMENT,就可以实现主键ID自增,能够保证字段的原子性.。 优点 数据库...

总该长大了的博客 2830

自增还是UUID,数据库主键的类型该如何选择?

自增还是UUID? 数据库主键的类型该如何选择?

白白白鲤鱼的博客 2318

详解:MySQL自增ID与UUID的优缺点及选择建议,MySQL有序uuid与自定义函数实现

自增ID的优缺点,不适合以自增ID主键作为主键的情况,UUID介绍说明,uuid是什么,uuid的组成,UUID作为主键优缺点,mysql8.0的uuid_to_bin()函数分析及实现,mysql有序UUID实战,自定义uuid,自增id主键与自定义主键的选择建议,JDBCUtilsByDruid工具类,mysql数据类型binary,mysql函数hex(),mysql函数unhex(),bin_to_binary(uuid(),true)详细说明与实战/示例演示,什么是uuid

是谢添啊 1万+

mybatis插入记录的主键自增赋值机制说明

前言 现在的项目实践中,表设计一般采用自增主键,那么在这当中会涉及到数据插入后,获取插入数据主键的一个场景处理。 对于这种情况,mybatis框架做了封装,提供了支持。 代码说明 通过debug方式,跟进执行路径,查看对应逻辑代码。 1、找到执行入口 这里的参数赋值有三个,但不包括id的赋值,id是由数据库自增。 这里看到一个KeyGenerator的类型,这个名字name的很好,自说明性很好。 2、看看keyGenerator的执行逻辑 这里可以看出,参数类型的id依然是空,但是上图的sql执行已结

weixin_42005602的博客 1058

数据库主键选用数据库自增ID、UUID和雪花算法的优缺点

缺点:占用空间大,不论数据量大小占用容量都是varchar(64)。因为UUID是随机数值,在批量查找数据时,数据的分布可能是随机的,会造成很高的磁盘随机读取消耗而降低效率,当然也可以选择使用顺序UUID。优点:全范围冲突的概率极小(极高频情况下还是要考虑冲突问题),支持分布式系统,迁移合并扩容都不会出现冲突的情况。优点:占用空间小,检索速度快。缺点:不适用于分布式系统,集群库会冲突,迁移合并扩容很难解决冲突的问题。占用空间:自增更小,UUID更大。伸缩性:自增不支持,UUID支持。

qq_36389344的博客 961
下一篇: 乐观锁与悲观锁
pdfcxc
博客等级 码龄10年 23粉丝 64原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值