mysql 主键 聚集索引_主键索引就是聚集索引吗?
这个问题很刁钻!
答案是错的。
的确在mysql数据库innodb引擎里面,主键的确就是聚集索引。
但是myisam引擎里面主键也不是聚集索引。
另外在sql server中还可以显示的指定聚集索引。
CREATE TABLE student
(
stud_id INT IDENTITY(1,1) NOT NULL,
stud_name NVARCHAR(20) NOT NULL,
CONSTRAINT pk_student PRIMARY KEY NONCLUSTERED (stud_id)
);
聚集索引决定了数据库的物理存储结构,而主键只是确定表格逻辑组织方式。这两者不可混淆!
对于Innodb,主键毫无疑问是一个聚集索引。但是当一个表没有主键,或者没有一个索引,Innodb会如何处理呢。请看如下规则:
1.如果一个主键被定义了,那么这个主键就是作为聚集索引
2. 如果没有主键被定义,那么该表的第一个唯一非空索引被作为聚集索引
3. 如果没有主键也没有合适的唯一索引,那么innodb内部会生成一个隐藏的主键作为聚集索引,这个隐藏的主键是一个6个字节的列,改列的值会随着数据的插入自增。
4.自增主键会把数据自动向后插入,避免了插入过程中的聚集索引排序问题。聚集索引的排序,必然会带来大范围的数据的物理移动,这里面带来的磁盘IO性能损耗是非常大的。 而如果聚集索引上的值可以改动的话,那么也会触发物理磁盘上的移动,于是就可能出现page分裂,表碎片横生。所以不应该修改聚集索引。
mysql 主键 聚集索引_主键索引就是聚集索引吗?相关推荐
- mysql非主键索引_主键索引和非主键索引的区别
1. 什么是最左前缀原则? 以下回答全部是基于MySQL的InnoDB引擎 例如对于下面这一张表 如果我们按照 name 字段来建立索引的话,采用B+树的结构,大概的索引结构如下 如果我们要进行模糊查 ...
- mysql非主键索引_主键索引和非主键索引解析
1. 什么是最左前缀原则? 以下回答全部是基于MySQL的InnoDB引擎 例如对于下面这一张表 如果我们按照 name 字段来建立索引的话,采用B+树的结构,大概的索引结构如下 如果我们要进行模糊查 ...
- mysql主键和唯一索引_主键和唯一索引的有什么区别
主键和唯一索引的区别 -- 区别 主键是一种约束,唯一索引是一种索引,两者在本质上是不同的. 主键创建后一定包含一个唯一性索引,唯一性索引并不一定就是主键. 唯一性索引列允许空值,而主键列不允许为空值 ...
- mysql主键约束代码_主键约束(示例代码)
第一范式要求每张表都要有主键,因此主键约束是非常重要的,而且主键约束是外键关联的基础条件.主键约束为表之间的关联提供了链接点. 主键必须能够唯一标识一条记录,也就是主键字段中的值必须是唯一的,而且不能 ...
- templet 显示字段外键对应名_主外键和外键约束
主外键和外键约束 主键 主键(primary key):一列(或一组列),其值能够唯一区分表中每个行 . 外键 外键(foreign key) 外键为某个表中的一列,它包含另一个表的主键值,定义了两个 ...
- mysql创建非聚集索引_一文看懂聚集索引和非聚集索引的区别
一.深入浅出理解索引结构 实际上,可以把索引理解为一种特殊的目录.微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引.簇集索引)和非聚集索引(nonclu ...
- mysql为什么采用b树_为什么MongoDB采用B树索引,而Mysql用B+树做索引
展开全部 事实上,在MySQL数据库中,诸多存储引擎使用的是B+树,即便其名字看上去是BTREE. 4.1 innodb的索引机制 先以innodb存储引擎为例,说明62616964757a68696 ...
- mysql分表后怎么索引_分库分表后的索引问题
摘要 最近遇到一个慢sql,在排查过程中发现和分库分表后的索引设置有关系,总结了下问题. 问题 在进行应用健康度盘点时,发现有个慢sql 如下 select brandgoodid from bran ...
- python花式索引_初探Numpy中的花式索引
Numpy中对数组索引的方式有很多(为了方便介绍文中的数组如不加特殊说明指的都是Numpy中的ndarry数组),比如:基本索引:通过单个整数值来索引数组 import numpy as np arr ...
最新文章
- 重磅回击!ZeniMax回击Oculus新试验
- Markdown用法
- mchain r语言_【揭秘】Mchain是长久稳定的项目吗?是不是骗钱的平台?做的人有多少?...
- python写一个路径选择app_django下创建多个app并设置urls方法
- Dubbo(五)Dubbo 简单监控平台(monitor)搭建
- 在英雄联盟地图中寻找“数据结构的大门”
- matlab能流图,有会用MATLAB写海流图的程序吗
- 国产在线三维云CAD:CrownCAD (在线建模CAD软件)
- 各种分类算法的优缺点
- Linux电驴客户端,linux下电驴amule的安装配置
- android 二选一的按钮,选择框 RadioButton/Check - Android 入门教程
- java使用freemarker模版下载成Excel文件
- 【Android】自制静音App,解决他人手机外放问题
- python初学者游戏开发团队
- GPU CPU NPU
- 通过internet连接到股票信息服务器,一种股票机的制作方法
- 【网络安全】渗透工程师面试题总结大全
- Xcode8 支持 iOS7及以下版本
- 淘宝/天猫、拼多多、1688产品详情页API、SKU信息获取展示
- Linux 7.9下安装grafana