[MySQL] 为什么要给表加上主键
1.一个没加主键的表,它的数据无序的放置在磁盘存储器上,一行一行的排列的很整齐.
2.一个加了主键的表,并不能被称之为「表」。如果给表上了主键,那么表在磁盘上的存储结构就由整齐排列的结构转变成了树状结构,并且是「平衡树」结构,换句话说,就是整个表就变成了一个索引。没错,再说一遍,整个表变成了一个索引,也就是所谓的「聚集索引」。 这就是为什么一个表只能有一个主键,一个表只能有一个「聚集索引」,因为主键的作用就是把「表」的数据格式转换成「索引(平衡树)」的格式放置。
3.给表中多个字段加上常规的索引,那么就会出现多个独立的索引结构.字段中的数据就会被复制一份出来,用于生成索引,叶子节点是主键ID,这也就是非聚集索引.,下面就是一个主键和三个常规索引的结构
4.通过主键去查,叶子节点就是数据行
5.通过其他索引字段去查,那么叶子节点是主键ID,然后再去根据主键查,聚集索引(主键)是通往真实数据所在的唯一路径
7.有一种例外可以不使用聚集索引就能查询出所需要的数据,这种非主流的方法称之为「覆盖索引」查询,也就是平时所说的复合索引或者多字段索引查询
十年开发经验程序员,离职全心创业中,历时三年开发出的产品《唯一客服系统》
一款基于Golang+Vue开发的在线客服系统,软件著作权编号:2021SR1462600。一套可私有化部署的网站在线客服系统,编译后的二进制文件可直接使用无需搭开发环境,下载zip解压即可,仅依赖MySQL数据库,是一个开箱即用的全渠道在线客服系统,致力于帮助广大开发者/公司快速部署整合私有化客服功能。
开源地址:唯一客服(开源学习版)
官网地址:唯一客服官网