自增、主键的优缺点(数据库)

自增主键

使用数据库提供的自增数值型字段作为自增主键,它的优点是:

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

缺点:

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

posted @ 2018-09-08 16:46 韦邦杠 阅读(...) 评论(...) 编辑 收藏

自增、主键的优缺点(数据库)相关推荐

  1. 修改自增主键初始化_数据库自增ID用完了会怎么样?

    看到这个问题,我想起当初玩魔兽世界的时候,25H难度的脑残吼的血量已经超过了21亿,所以那时候副本的BOSS都设计成了转阶段.回血的模式,因为魔兽的血量是int型,不能超过2^32大小. 估计暴雪的设 ...

  2. mybatis获取mysql自增主键_Mybatis获取数据库自增主键

    一般我们都为将表中主键列设置为自增,当我们执行插入语句时,比如这样 //测试添加 Employee employee = new Employee(null, "jerry4",n ...

  3. mysql自增主键设置

    mysql自增主键设置 在数据库应用中,经常希望在每次插入新纪录时,系统自动生成字段的主键值.可以通过为表主键添加AUTO_INCREMENT关键字来实现. 默认情况下,在MYSQL中AUTO_INC ...

  4. 自增主键与UUID的优缺点

    https://blog.csdn.net/rocling/article/details/83116950 自增主键与UUID的优缺点 rocling 2018-10-17 20:15:02  80 ...

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

    加油站: 在数字经济时代,数据的重要性堪比石油.大数据的四个特点:Volume(数据体量大).Variety(数据类型繁多).Velocity(处理速度快).Value(商业价值高),只要合理利用数据 ...

  6. 通过源码分析Mybatis是如何返回数据库生成的自增主键值?

    在Mybatis中,执行insert操作时,如果我们希望返回数据库生成的自增主键值,那么就需要使用到KeyGenerator对象. 需要注意的是,KeyGenerator的作用,是返回数据库生成的自增 ...

  7. 数据库自增主键可能产生的问题

    在MySQL中经常会配置自增长属性的字段作为主键,特别是使用InnoDB存储引擎,因为InnoDB的聚集索引的特性,使用自增长属性的字段当主键性能更好,但是使用自增主键也可能会带来一些问题.   举个 ...

  8. MyBatis 获取数据库中自增主键值

    一.在 SQL 映射文件的 select 标签中添加 useGeneratedKeys="true" 属性与 keyProperty=" " 属性,keyPro ...

  9. datatable如何生成级联数据_通过源码分析Mybatis是如何返回数据库生成的自增主键值?...

    在Mybatis中,执行insert操作时,如果我们希望返回数据库生成的自增主键值,那么就需要使用到KeyGenerator对象. 需要注意的是,KeyGenerator的作用,是返回数据库生成的自增 ...

  10. java 并发 主键_高并发数据库自增主键分析

    在一般情况下,在新增领域对象后,都需要获取对应的主键值.使用应用层来维护主键,在一定程度上有利于程序性能的优化和应用移植性的提高.在采用数据库自增主键的方案里,如果JDBC驱动不能绑定新增记录对应的主 ...

最新文章

  1. 美国政府机构成为接受比特币和比特现金支付税金的政府机构
  2. 设计模式笔记(2)---单件模式(创建型)
  3. 学python多长时间能够精通-学Python多长时间?老男孩Python技术培训
  4. android开发之当设置textview多少字后以省略号显示。限制TextView的字数
  5. POJ2528 线段树+离散化+hash(成段更新)
  6. 不确定度在线计算_气相色谱质谱法快速测定毒死蜱、联苯菊酯不确定度评定
  7. 项目使用mybatis-plus采用mysql/clickhouse多数据库配置,报错Invalid bound statement (not found)
  8. 腾讯MSDK手Q微信授权登录
  9. APP测试基础--小工具介绍(1)
  10. 要出发周边游APP产品体验报告
  11. WIN10 家庭版 安装DOCKER 遇到问题:THIS COMPUTER DOESN'T HAVE VT-X/AMD-V ENABLED
  12. C#代码审计实战+前置知识
  13. SQL-Server数据库开发总结
  14. 异构数据库中间件sequoia(c-jdbc)初体验(1.安装试运行)
  15. mysql管理应用小工具mysql front安装与使用教程
  16. 《吕鑫:VC++6.0就业培训宝典之MFC视频教程》学习笔记 -- 第五章对话框组合
  17. Flutter 遇到的问题整理
  18. amd服务器和intel服务器性能,服务器CPU内存性能哪家强?AMD or Intel?
  19. C++标准程序库(学习笔记)二
  20. iOS开发指南:从零基础到App Store上架(第2版 )

热门文章

  1. python实现完整的求解给定列表中所有的平衡点问题,是所有的平衡点
  2. 分布排序(distribution sorts)算法大串讲
  3. Visual Studio 2017 警告C4819解决方案
  4. 关于python中的pow(1010、32)_关于Python中的??pow(1010,32),下列说法正确的是.
  5. 语言编奇数和合偶数和_Go语言基础(三)
  6. 算法复杂度(2):常用数据结构的时间复杂度和空间复杂度 统计
  7. java -cp 什么意思 怎么用
  8. 复习-arrary和arraylist的对比以及arraylist的遍历中删除的原理
  9. css html实现粒子特效,CSS实现粒子动态按钮效果
  10. 飞机大战小游戏1.0