美文网首页
mysql索引(六)主键索引

mysql索引(六)主键索引

作者: camellias__ | 来源:发表于2021-07-22 09:36 被阅读0次

Mysql索引大概有五种类型:

普通索引(INDEX):最基本的索引,没有任何限制
唯一索引(UNIQUE):与"普通索引"类似,不同的就是:索引列的值必须唯一,但允许有空值。
主键索引(PRIMARY):它 是一种特殊的唯一索引,不允许有空值。
全文索引(FULLTEXT ):可用于 MyISAM 表,mysql5.6之后也可用于innodb表, 用于在一篇文章中,检索文本信息的, 针对较大的数据,生成全文索引很耗时和空间。
联合(组合)索引:为了更多的提高mysql效率可建立组合索引,遵循”最左前缀“原则。

这里我们来看下主键索引(特殊的唯一索引)。

主键索引一般建议使用数据表的自增唯一主键来作为主键索引使用。

主键索引,简称主键,原文是PRIMARY KEY,由一个或多个列组成,用于唯一性标识数据表中的某一条记录。一个表可以没有主键,但最多只能有一个主键,并且主键值不能包含NULL。

在MySQL中,InnoDB数据表的主键设计我们通常遵循几个原则:

1、采用一个没有业务用途的自增属性列作为主键;
2、主键字段值总是不更新,只有新增或者删除两种操作;
3、不选择会动态更新的类型,比如当前时间戳等。

在MyISAM引擎中,唯一索引除了key值允许存在NULL外,其余的和主键索引没有本质性区别。也就是说,在MyISAM引擎中,不允许存在NULL值的唯一索引,本质上和主键索引是一回事。

而在InnoDB引擎中,主键索引和辅助索引的区别就很大了。主键索引会被选中作为聚集索引,而唯一索引和普通辅助索引间除了唯一性约束外,在存储上没本质区别。

从查询性能上来说,在MyISAM表中主键索引和不允许有NULL的唯一索引的查询性能是相当的,在InnoDB表通过唯一索引查询则需要多一次从辅助索引到主键索引的转换过程。InnoDB表基于普通索引的查找代价更高,因为每次检索到结果后,还需要至少再多检索一次才能确认是否还有更多符合条件的结果,主键索引和唯一索引就不需要这么做了。

关于主键索引,我能想到的基本上就是这些了。这个没有sql的验证。

单纯的就是我自己在这叨叨的一些我理解的一些知识点。

有好的建议,请在下方输入你的评论。

欢迎访问个人博客
https://guanchao.site

相关文章

  • MySQL--索引

    MySQL索引 查看索引 创建索引 创建唯一索引 创建主键索引 删除索引 删除主键 MySQL视图 创建视图 删除...

  • mysql索引(六)主键索引

    Mysql索引大概有五种类型: 普通索引(INDEX):最基本的索引,没有任何限制唯一索引(UNIQUE):与"普...

  • MySql 数据查询优化

    1. MySQL索引类型: mysql的索引有5种:主键索引、普通索引、唯一索引、全文索引、聚合索引(多列索引)。...

  • mysql的索引问题和sql优化(不定期更新)

    mysql的索引分为 1:主键索引 2:唯一索引 3:聚集索引

  • mysql查询时强制或者禁止使用某个索引

    mysql强制索引和禁止某个索引 1、mysql强制使用索引:force index(索引名或者主键PRI)例如:...

  • mysql

    1.mysql索引的类型,主键索引、唯一索引、普通索引、组合索引、全文索引,b-tree索引 2.mysql具体有...

  • 7. Interview-MySQL

    1 MySQL索引类型? 普通索引,index 主键索引,primary 唯一索引,unique index 全文...

  • 索引

    Mysql索引模型采用B+树 主键索引与非主键索引 从图中不难看出,根据叶子节点的内容,索引类型分为主键索引和非主...

  • Mysql添加索引

    mysql语句添加索引 1.PRIMARYKEY(主键索引) mysql>ALTERTABLE`table_nam...

  • ClickHouse索引查询优化

    索引简介 clickhouse主键即索引,不同于mysql,clickhouse主键可以重复。 clickhous...

网友评论

      本文标题:mysql索引(六)主键索引

      本文链接:https://www.haomeiwen.com/subject/wtmlmltx.html