自增主键与UUID的优缺点

 

https://blog.csdn.net/rocling/article/details/83116950

 

 

自增主键与UUID的优缺点

rocling 2018-10-17 20:15:02  8062  收藏 8

分类专栏: sql java 文章标签: sql

版权

自增主键

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

优点

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

缺点

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

 

UUID

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

优点

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

缺点

影响插入速度, 并且造成硬盘使用率低
uuid之间比较大小相对数字慢不少, 影响查询速度。
uuid占空间大, 如果你建的索引越多, 影响越严重
 

 

 

 

  • 点赞2
  • 评论1
  • 分享
  • 收藏8
  • 手机看
  • 打赏
  • 关注

华为机考题库(全)

12-22

包括招聘的机考题,及面试过程中会问到的数据结构的相关内容,排序算法全部包括并且有改进算法,一点点改进可以让你表现的与众不同,如果好的话给点评价吧亲

还是UUID?MYSQL数据库主键的类型选择

weixin_43101678的博客

 1万+

还是UUID?这个问题看似简单,但是能诱发很多思考,也涉及到了很多细节。网上的确有很多有关这方面的资料,但是比较乱,今天我结合这些资料和自己的心得,单独对这个话题写一篇博客出来,希望对大家有所帮助哈。 先说下uuid和 auto_increment(数据库自主键)的优缺点吧,因为是个人理解,如有错误恳请指出: auto_incremen的优点: 字段长度较uuid小很多,可以是big...

  • lujiayuzuiniubi

    JoieLu:对于拆分 我用EXCEL合并130万条数据 然后主键就用EXCEL自动生成,所以在数据量大的情况下还是推荐自增ID,加快效率,哪怕0.1秒13天前回复

 

 

 

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/327358.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Git 在团队中的最佳实践--如何正确使用Git Flow

我们已经从SVN 切换到Git很多年了,现在几乎所有的项目都在使用Github管理, 本篇文章讲一下为什么使用Git, 以及如何在团队中正确使用。 Git的优点 Git的优点很多,但是这里只列出我认为非常突出的几点。 由于是分布式,所有本地库包含了远程库的…

javaWeb服务详解(含源代码,测试通过,注释) ——Emp的Dao层

IEmpDao的接口 /** * Title: IEmpDao.java * Package org.dao * Description: TODO该方法的主要作用: * author A18ccms A18ccms_gmail_com * date 2017-6-2 下午2:53:12 * version V1.0 */ package org.dao;import java.util.List;import org.entity.Emp;/**…

拿到阿里巴巴的实习生Offer就是这么简单

转载自 拿到阿里巴巴的实习生Offer就是这么简单 一、个人简介及面试流程简介 本人本科就读于一个非985非211的一本高校,研究生就读于某985高校,目前研究方向为云计算与大数据。实习内推部门为菜鸟网络,所投的岗位为后台开发Java(包含大数据…

[译] RESTful API 设计最佳实践

https://juejin.im/entry/6844903503953920007 [译] RESTful API 设计最佳实践 阅读 8779 收藏 0 2017-10-16 原文链接: segmentfault.com 原文:RESTful API Design. Best Practices in a Nutshell. 作者:Philipp Hauer 项目资源的URL应该…

Git(笔记)

版本控制 版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。 实现跨区域多人协同开发追踪和记载一个或者多个文件…

javaWeb服务详解(含源代码,测试通过,注释) ——Dept的Service层

IDeptService接口 /** * Title: IDeptService.java * Package org.service * Description: TODO该方法的主要作用: * author A18ccms A18ccms_gmail_com * date 2017-6-2 下午12:00:09 * version V1.0 */ package org.service;import java.util.List;import j…

做到我这样,你也能拿到京东Offer

转载自 做到我这样,你也能拿到京东Offer 最近,春招已经基本接近尾声了,我找了几位拿到名企Offer的粉丝,请他们总结了面试经验,近期会分批的推送给大家。希望给那些正在准备秋招的同学提供些帮助。这是一篇7000字的长文…

迁移传统.net 应用到.net core [视频]

.net core是.NET技术的未来,这一点正在被越来越多的公司认识到,但是如何将传统的.NET应用迁移到.NET Core是一个迫切需要解决的问题。 对于传统.NET应用来说,使用和不使用.NET Core可能并不能直接给企业带来好处,相反使用中遇到了…

POI

Poi(适合小数据量) Apache POI 官网:https://poi.apache.org/ POI是Apache软件基金会的,POI为“Poor Obfuscation Implementation”的首字母缩写,意为“简洁版的模糊实现”。 所以POI的主要功能是可以用Java操作Micr…

javaWeb服务详解(含源代码,测试通过,注释) ——Emp的Service层

IEmpService的接口 /** * Title: IEmpService.java * Package org.service * Description: TODO该方法的主要作用: * author A18ccms A18ccms_gmail_com * date 2017-6-2 下午2:58:36 * version V1.0 */ package org.service;import java.util.List;import ja…

因 Redis Key 命令不规范,导致熬了一个通宵才把Key删完了!

https://mp.weixin.qq.com/s/7FL0nUTk6aFmAb2J__5Mtw 因 Redis Key 命令不规范,导致熬了一个通宵才把Key删完了! 点击关注 👉 Java面试那些事儿 9月3日 # 前言 由于有一条业务线不理想,高层决定下架业务。对于我们技术团队而言&a…

16个经典面试问题回答思路

转载自 16个经典面试问题回答思路 在一般的互联网公司的技术人员的面试中,大概会经历3到4轮的面试,差不多2-3轮的技术面,还有1轮的HR面试,今天给你总结的这些问题,都是和技术无关的,但是技术人员也可能会被…

使用 CefSharp 在 C# App 中嵌入 Chrome 浏览器

介绍 以前曾试过在app中整合一个可靠又快速的web浏览器吗? 在本文中,你会学到如何轻松地将奇妙的CefSharp网页浏览器组件(基于Chromium)集成到你的C# app中。 然后,你可以使用此web浏览器: 给用户提供一个集…

javaWeb服务详解(含源代码,测试通过,注释) ——applicationContext-dao.xml

<?xml version"1.0" encoding"UTF-8"?> <beansxmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xmlns:p"http://www.springframework.org/schema/p"xs…

从入门到熟悉 HTTPS 的 9 个问题

转载自 从入门到熟悉 HTTPS 的 9 个问题 Q1: 什么是 HTTPS&#xff1f; BS: HTTPS 是安全的 HTTP HTTP 协议中的内容都是明文传输&#xff0c;HTTPS 的目的是将这些内容加密&#xff0c;确保信息传输安全。最后一个字母 S 指的是 SSL/TLS 协议&#xff0c;它位于 HTTP 协议…

Jexus针对Asp.net core应用程序的六大不可替代的优势

Jexus 是一款运行于 Linux 平台&#xff0c;以支持 ASP.NET、PHP 为特色的集高安全性和高性能为一体的 WEB 服务器和反向代理服务器。 1&#xff0c;配置简便&#xff1a;在Jexus上&#xff0c;Asp.net core只是Jexus上的一个“站点”&#xff0c;因此&#xff0c;只需在Jexus…

javaWeb服务详解(含源代码,测试通过,注释) ——applicationContext-Service.xml

<?xml version"1.0" encoding"UTF-8"?> <beansxmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xmlns:p"http://www.springframework.org/schema/p"xm…

安装docker遇到的坑 Could not resolve host: download.docker.com;

我写的 1.编辑网卡 vim /etc/sysconfig/network-scripts/ifcfg-ens33 2.增加这三行 DNS18.8.8.8 DNS2114.114.114.114 PEERDNSno 3.最后重启网络service network restart 即可。不行就重启虚拟机 4.设置稳定的源yum-config-manager \ --add-repo \ https://download…

EasyExcel(笔记)

常用场景 1、将用户信息导出为excel表格&#xff08;导出数据…&#xff09; 2、将Excel表中的信息录入到网站数据库&#xff08;习题上传…&#xff09; 开发中经常会设计到excel的处理&#xff0c;如导出Excel&#xff0c;导入Excel到数据库中&#xff01; 操作Excel目前比…

javaWeb服务详解(含源代码,测试通过,注释) ——applicationContext.xml

<?xml version"1.0" encoding"UTF-8"?> <beansxmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xmlns:p"http://www.springframework.org/schema/p"xm…