iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >数据库主键相关问题有哪些
  • 547
分享到

数据库主键相关问题有哪些

2023-06-27 11:06:32 547人浏览 泡泡鱼
摘要

这篇文章主要讲解了“数据库主键相关问题有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“数据库主键相关问题有哪些”吧!1 是否每张表都应该有自增主键?不一定自增主键可以加快行的插入速度,对

这篇文章主要讲解了“数据库主键相关问题有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“数据库主键相关问题有哪些”吧!

数据库主键相关问题有哪些

1 是否每张表都应该有自增主键?

不一定自增主键可以加快行的插入速度,对于表的空间利用上有优势,碎片化不明显。

但是对一些内容,如根据uid的查询非常频繁的,而且比较集中的,那如果不用自增主键,而是使用uid+id作为复合主键,那查询效率会上去,但插入和碎片化就会增加。但如果数据库的存储类型是ssd,那这个问题就不存在了。

所以,大部分情况来看,表有自增主键是正确的。

2 自增主键是否具有业务上的唯一性?

不一定

单表结构下,是的。

多表情况下,不一定,需要一定的策略,如设定不同的后缀,相同的间隔等。

3 自增主键是否可以牵扯到业务?

不建议这样做。

如:表可以有自增主键,表内是具有唯一性的。在根据id查询和更新的时候,可以简化操作。但一般来说,和业务上存在关系,并且需要唯一性的时候,应该由业务自主去维护,如使用格式或算法,hash生成等方式。

4 业务维护的主键,怎样在多表的情况下保持唯一性?

维护自增键区间段,服务器每次取其中的一段,乐观更新。这个需要额外的表或策略来维护这个字段。

基于算法A,固定时间前缀,如:yyyyMMddHHmmss+表数mod值+随机数,通过位数的增加,来降低冲突的可能性。表字段存在唯一性约束(但有时候这个约束并不可靠)插入时若抛出重复字段值异常,则重新生成插入。

基于算法B,固定时间前缀,如:yyyyMMddHHmmss+固定位数碰撞自增值N+随机数。不需要通过位数的增加来降低冲突的可能性。当插入抛出重复字段值异常时,N++,重新插入,直到不再冲突为止。此后固定使用N作为中缀,并且N缓存服务器,重启后继续使用此中缀。若出现重复异常,再次N++执行相同操作即可。N的mod值这些就不用故意提起啦。

基于中缀管理,即上报中缀到中心服务器,可以理解有地方缓存了服务器的id关系,动态分配中缀。

其他方法,还有很多,也没有用过,不赘述了。算法B,简单,通信少,而且碰撞次数有限。算法A,存在无限次数的碰撞,尽管百分比非常非常低。但是在高并发的情况下,初始化的时候,算法B会比算法A来得更狂风暴雨一些。

区间段和中缀管理,都引入了中心节点的概念,依赖性比较强,但相对可靠,业界更为通用的实现方式。

感谢各位的阅读,以上就是“数据库主键相关问题有哪些”的内容了,经过本文的学习后,相信大家对数据库主键相关问题有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 数据库主键相关问题有哪些

本文链接: https://www.lsjlt.com/news/310062.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 数据库主键相关问题有哪些
    这篇文章主要讲解了“数据库主键相关问题有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“数据库主键相关问题有哪些”吧!1 是否每张表都应该有自增主键?不一定自增主键可以加快行的插入速度,对...
    99+
    2023-06-27
  • ADO.NET参数相关问题有哪些
    这篇文章主要介绍“ADO.NET参数相关问题有哪些”,在日常操作中,相信很多人在ADO.NET参数相关问题有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ADO.NET参数相关问题有哪些”的疑惑有所帮助!...
    99+
    2023-06-17
  • 数据库自增主键可能产生的问题有哪些
    数据库自增主键可能产生的问题包括:1. 插入数据时可能存在并发问题。如果多个线程同时插入数据,可能会导致主键冲突,从而导致插入失败。...
    99+
    2023-09-27
    数据库
  • phyon相关问题有哪些
    这篇文章主要讲解了“phyon相关问题有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“phyon相关问题有哪些”吧!1.python是什么?Python是用来编写应用程序的高级编程语言。...
    99+
    2023-06-02
  • vsftpd相关问题有哪些
    本篇内容介绍了“vsftpd相关问题有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Q1) 求助!vsftpd显示的是GMT时间,而不是...
    99+
    2023-06-16
  • PHP面试题“数据库”相关知识有哪些
    小编给大家分享一下PHP面试题“数据库”相关知识有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!        &nb...
    99+
    2023-06-15
  • Node.js的相关问题有哪些
    本篇内容主要讲解“Node.js的相关问题有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Node.js的相关问题有哪些”吧!1. Node诞生于哪一年?N...
    99+
    2024-04-02
  • Spark的相关问题有哪些
    这篇文章主要介绍“Spark的相关问题有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Spark的相关问题有哪些”文章能帮助大家解决问题。1、Spark的核心是什么  RDD是Spark的基本抽...
    99+
    2023-06-02
  • PHP SQlite数据库相关函数有哪些
    今天就跟大家聊聊有关PHP SQlite数据库相关函数有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。PHP SQlite数据库对于拥有相当经验的PHP程序员来说是不会陌生的,但...
    99+
    2023-06-17
  • MySQL数据库的主从配置有哪些问题
    这篇文章主要介绍MySQL数据库的主从配置有哪些问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!  MySQL数据库是一种功能性不是很强大的关系型数据库管理系统,尽管功能不完善,但...
    99+
    2024-04-02
  • 有哪些Java GC的相关问题
    这篇文章主要介绍“有哪些Java GC的相关问题”,在日常操作中,相信很多人在有哪些Java GC的相关问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”有哪些Java GC的相关问题”的疑惑有所帮助!接下来...
    99+
    2023-06-16
  • java技术相关问题有哪些
    这篇文章主要介绍“java技术相关问题有哪些”,在日常操作中,相信很多人在java技术相关问题有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java技术相关问题有哪些”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-03
  • 数据库集合相关命令有哪些
    本篇内容介绍了“数据库集合相关命令有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!集合的性质: 唯一性...
    99+
    2024-04-02
  • MySQL数据库相关知识点有哪些
    这篇文章给大家分享的是有关MySQL数据库相关知识点有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、数据库概要数据库(Database)是存储与管理数据的软件系统,就像一...
    99+
    2024-04-02
  • SQLServer数据库主键及复合主键都有哪些配置
    这篇文章主要介绍“SQLServer数据库主键及复合主键都有哪些配置”,在日常操作中,相信很多人在SQLServer数据库主键及复合主键都有哪些配置问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方...
    99+
    2024-04-02
  • 数据库备份的相关概念有哪些
    本篇内容介绍了“数据库备份的相关概念有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、备份的类型备份...
    99+
    2024-04-02
  • 与MySQL FQA相关的问题有哪些
    本篇内容介绍了“与MySQL FQA相关的问题有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.dr...
    99+
    2024-04-02
  • CSS if条件相关问题有哪些
    这篇文章主要介绍“CSS if条件相关问题有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“CSS if条件相关问题有哪些”文章能帮助大家解决问题。 1.区别I...
    99+
    2024-04-02
  • 和MySQL数据库管理相关的函数有哪些
    今天就跟大家聊聊有关和MySQL数据库管理相关的函数有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。下面介绍学习MySQL数据库管理相关的函数。...
    99+
    2024-04-02
  • 数据库备份容灾相关概念有哪些
    本篇内容介绍了“数据库备份容灾相关概念有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!物理备份:是将实...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作