首页 > 经验内容详情
解释主键的含义及作用(为什么要用无业务含义的主键)

解释主键的含义及作用(为什么要用无业务含义的主键)

所属分类:经验

发布时间:2025-11-03 15:36:03

更新日期:2025-11-03 15:36:03

标签:

官方网址:

SEO查询: 爱站网 站长网 5118

进入网站
标签ad报错:该广告ID(3)不存在。
网站及网址申请收录 本站只收录合法内容

内容介绍

这个问题不能一概而论:

(1)如果是InnoDB存储引擎,主键不能太长;

(2)如果是MyISAM存储引擎,影响不大;

我们举一个简单的栗子来解释序言知识。

假设有一个数据表:

t(id主键,姓名键,性别,标志);

其中包括:

(1)id是主键;

(2)名称已建立通用索引;

假设表中有四条记录:

1、沈剑,文学硕士

3、张三,m,A

5、李思,文学硕士,文学硕士

9,吴王,f,B

如果存储引擎是MyISAM,则其索引和记录结构如下:

(1)有单独的区域存储记录(备案);

(2)主键索引与普通索引结构差不多,都存储记录的指针(暂且理解为指针);

画外音:

(1)主键索引不与记录存储在一起,因此它是一个非聚集索引;

(2)MyISAM可以不PK;

MyISAM使用index进行搜索时,会先从索引树中定位记录指针,然后通过记录指针定位具体的记录。

画外音:不管主键索引,也是普通索引,流程是一样的。

InnoDB不一样。其索引和记录结构如下:

(1)主键索引与记录一起存储;

(2)普通索引存储主键(现在不是指针);

画外音:

(1)主键索引是和记录一起存储的,所以叫聚集索引;

(2)InnoDB必须有聚集索引;

InnoDB可以在通过主键索引查询时直接定位行记录。

但是,如果通过公共索引进行查询,将首先查询主键,然后从主键索引开始遍历索引树两次。

回到正题,InnoDB的主键为什么不能太长?

假设有一个以用户为中心的场景,这个场景包含了身份证号、ID MD5、姓名、出生日期等业务属性。,都有查询需求。

思考设计最简单的方法是:

身份证作为主键其他属性上建立索引

用户(id_code主键,

id_md5(索引),

名称(索引),

生日(指数));

此时,索引树和行记录结构如下:

id_code聚集索引,关联行记录其他索引,存储id_code属性值

Id_code是一个相对较长的字符串,每个索引都存储这个值。MySQL数据量大,内存珍贵,缓冲区有限,所以存储的索引和数据会减少,磁盘IO的概率会增加。

画外音:同时索引占用的磁盘空也会增加。

此时,应该添加一个没有业务意义的id自添加列:

以id自增列为聚集索引,关联行记录其他索引,存储id值

用户(id PK汽车公司,

id_code(索引),

id_md5(索引),

名称(索引),

生日(指数));

因此,有限的缓冲区可以缓冲很多的索引和行数据,磁盘IO的频率将会降低,整体性能将会提高。

摘要

(1)MyISAM的索引与数据分开存储,索引留下存储指针。主键索引和普通索引差别不大;

(2)InnoDB的聚集索引和数据行统一存储,聚集索引存储数据行本身,普通索引存储主键;

(3)InnoDB不建议用太长的字段做PK(此时可以加一个自增键PK),但是MyISAM不在乎;

从微信到微信官方账号架构师

本文地址:http://tuifabu.com/jyzs/61630.html

推发布温馨提示:

"解释主键的含义及作用(为什么要用无业务含义的主键)"浏览人数已经达到,如你需要查询该内容或者官方网站 的相关权重及百度收录信息,可以点击爱站网"爱站数据"站长之家网"Chinaz数据"进入;5118"进入查询更多!

以目前的网站数据参考,建议大家请以爱站数据为准,更多网站价值评估因素如:访问速度、搜索引擎收录以及百度收录索引量、用户体验等;当然要评估一个站的价值,最主要还是需要根据您自身的需求以及需要,一些确切的数据则需要找的站长进行洽谈提供,如该内容百度收录情况及官方网站的IP、PV、跳出率等!


互联网 tuifabu.com 文章内容百度收录查询
当你在网上看到解释主键的含义及作用(为什么要用无业务含义的主键)标题时,推发布尽可能为你提供更多关于解释主键的含义及作用(为什么要用无业务含义的主键)的内容及解释主键的含义及作用(为什么要用无业务含义的主键)文章,你还可以在百度进行解释主键的含义及作用(为什么要用无业务含义的主键)关键词搜索相关内容文章进行查询你想要的信息!

推发布免责声明:

你所看到的关于解释主键的含义及作用(为什么要用无业务含义的主键)内容都来源于网络,不保证外部链接及内容的一定准确性和完整性,同时,对于该外部链接的指向,不由本站实际控制,在2025-11-03 15:36:03收录时,该网页上的内容,都属于合规合法,后期网页的内容如出现违规,可以直接联系网站管理员进行删除,本站不承担任何责任。