[MySQL] 为什么要给表加上主键
1.一个没加主键的表,它的数据无序的放置在磁盘存储器上,一行一行的排列的很整齐.
2.一个加了主键的表,并不能被称之为「表」。如果给表上了主键,那么表在磁盘上的存储结构就由整齐排列的结构转变成了树状结构,并且是「平衡树」结构,换句话说,就是整个表就变成了一个索引。没错,再说一遍,整个表变成了一个索引,也就是所谓的「聚集索引」。 这就是为什么一个表只能有一个主键,一个表只能有一个「聚集索引」,因为主键的作用就是把「表」的数据格式转换成「索引(平衡树)」的格式放置。
3.给表中多个字段加上常规的索引,那么就会出现多个独立的索引结构.字段中的数据就会被复制一份出来,用于生成索引,叶子节点是主键ID,这也就是非聚集索引.,下面就是一个主键和三个常规索引的结构
4.通过主键去查,叶子节点就是数据行
5.通过其他索引字段去查,那么叶子节点是主键ID,然后再去根据主键查,聚集索引(主键)是通往真实数据所在的唯一路径
7.有一种例外可以不使用聚集索引就能查询出所需要的数据,这种非主流的方法称之为「覆盖索引」查询,也就是平时所说的复合索引或者多字段索引查询
转载于:https://www.cnblogs.com/taoshihan/p/11265427.html
[MySQL] 为什么要给表加上主键相关推荐
- mysql 备库 hang住_mysql主键的缺少导致备库hang住
最近线上频繁的出现slave延时的情况,经排查发现为用户在删除数据的时候,由于表主键的主键的缺少,同时删除条件没有索引,或或者删除的条件过滤性极差,导致slave出现hang住,严重的影响了生产环境的 ...
- MySQL:创建数据库,数据表,主键和外键
目录 前言: 安装MySQL: 打开MySQL: 创建数据库: 查看已建数据库: 查看数据库引擎: 创建数据表: 主键约束: 单字段主键: 多字段联合主键: 外键约束: 前言: MySQL数据库安装了 ...
- MySql之DDL操作创建表(添加主键, 外键约束以及基本的数据类型)
1.创建表基本语句 CREATE TABLE users( username VARCHAR(50) PRIMARY KEY, userpwd VARCHAR(50) NOT NULL, userag ...
- mysql建表时主键_mysql建表时怎么设置主键?
设置方法:在"CREATE TABLE"语句中,通过"PRIMARY KEY"关键字来指定主键,语法格式"字段名 数据类型 PRIMARY KEY [ ...
- MySQL建表,主键,外键
1.创建表 MySql中,创建表是通过SQL语句create table实现的.语法形式如下: create table 表名( 属性名 数据类型[完整性约束条件], 属性名 数 ...
- mysql建表时主键_mysql建表时设置主键的方法
mysql建表时设置主键的方法 发布时间:2020-10-10 15:17:28 来源:亿速云 阅读:119 作者:小新 mysql建表时设置主键的方法?这个问题可能是我们日常学习或工作经常见到的.希 ...
- MySQL修改表的主键字段
MySQL修改表的主键字段 1. 命令 ALTER TABLE sleep_device_day_temp DROP PRIMARY KEY ,ADD PRIMARY KEY ( id );
- Flink MySQL CDC 增量同步要求源表有主键
版本:2.2 如果源表没有主键,则运行时报错: 2023-03-13 21:28:25,244 INFO [679] [com.ververica.cdc.connectors.mysql.sourc ...
- 数据库表的主键、唯一约束和索引
目录 1.MySQL的主键. 2.MySQL的唯一约束. 3.MySQL的索引. 4.主键.唯一约束和唯一索引的区别. 1.MySQL 的 主键. "主键" 的完整称呼是 &quo ...
最新文章
- R可视化在回归曲线中添加回归方程式
- python write非法字符报错_Python爬虫实现的微信公众号文章下载器
- vb检测电脑温度_电脑硬件温度多少正常?如何查看电脑硬件温度?
- jquery插件封装指南
- 【结论】Number(jzoj(gz) 1781)
- mysql确认半同步命令_怎么判断mysql是否是半同步复制
- 使用Linux命令行测试网速
- PHP(4):PHP操作WORD文件
- 【图像处理】图像分割之(一~四)GraphCut,GrabCut函数使用和源码解读(OpenCV)
- webpack基本使用
- 有向图的强联通分量之:【求最长链】【求最长链的方案数(图论中的方案数DP)】【最长链和最大半联通子图 节点数相同】【最长链与最大半联通子图等价又不完全等价】
- Functional Commitment Schemes: From Polynomial Commitments to Pairing-Based Accumulators学习笔记
- SSD-Tensorflow 512x512 训练配置
- 谷歌首席决策科学家:30篇文章通关数据科学与人工智能(转自TinyMind社区)
- 在线投票系统前端html,在线注册、登录的投票系统
- 南京理工大学计算机学号6,学生学籍管理系统
- 2021-2027全球与中国汽车互联信息娱乐系统市场现状及未来发展趋势
- 添加USB wifi驱动到RK3568
- 计算机主机红灯不闪硬盘工作,电脑开机后黑屏,硬盘和键盘指示灯不亮.主机无自检信息,该如何检修?...
- JNI中Fatal signal 11 (SIGSEGV), code 1的错误.
热门文章
- centos7 转换为lvm_[转] centos7 调整XFS格式的LVM大小
- rabbitmq延迟队列实现
- 不会英语能学oracle吗,英语非常差该怎么学啊?
- python编辑器_python编辑器,作为小白该如何抉择?
- mysql load会锁表吗_Mysql必读MySQL中由load data语句引起死锁的解决案例
- toad导入数据_利用TOAD实现EXCEL数据在oracle的导入导出
- android 去空字符串,android – TextUtils.isEmpty()方法为空字符串返回false
- php 正则过滤style,PHP 过滤常用标签的正则表达式
- 循环结果添加到集合_Java Note-数据结构(4)集合
- jQuery中ajax的触发时机,javascript - 如何在启动Ajax查询的jQuery中触发方法change() - 堆栈内存溢出...