概述
MySQL群集索引和非群集索引之间的区别
聚集索引和非聚集索引之间的差异是数据库相关访谈中最著名的问题。这两个索引具有相同的物理结构,并作为BTREE结构存储在MySQL服务器数据库中。在本节中,我们将解释它们之间最流行的差异。
MySQL中的索引编制是一个过程,可帮助我们非常快速地从表中返回请求的数据。如果该表没有索引,它将在整个表中扫描请求的数据。 MySQL允许两种不同类型的索引:
聚集索引
非聚集索引
让我们首先简要讨论聚簇索引和非聚簇索引。
什么是聚集索引?
聚集索引是用于存储行数据的表。它基于只能在一个方向上排序的键值定义表数据的顺序。在数据库中,每个表只能包含一个聚集索引。在关系数据库中,如果表列包含主键或唯一键,则MySQL允许您基于该特定列创建名为PRIMARY的聚集索引。
例
以下示例说明了如何在MySQL中创建聚簇索引:
特点
以下是聚集索引的基本特征:
它使我们能够将数据和索引存储在一起。
它仅基于键值以一种方式存储数据。
关键查找。
它支持索引扫描和索引查找数据操作。
聚集索引始终使用一个或多个列来创建索引。
什么是非聚集索引?
除PRIMARY索引(聚集索引)以外的索引称为非聚集索引。非聚集索引也称为二级索引。非聚集索引和表数据都存储在不同的位置。它不能对表数据进行排序(排序)。非聚集索引与将内容写在一个地方的书相同,而索引在另一个地方。 MySQL允许一个表存储一个或多个非聚集索引。非聚集索引可提高使用键而不分配主键的查询的性能。
例
特点
以下是非聚集索引的基本特征:
它仅存储键值。
它允许访问具有指向物理行的指针的辅助数据。
它有助于索引扫描和查找的操作。
一个表可以包含一个或多个非聚集索引。
非聚集索引行存储非聚集键和行定位符的值。
聚类VS非聚类索引
让我们通过表格形式查看聚集索引和非聚集索引之间的一些常见差异:
Parameter
Clustered Index
Non-Clustered Index
Definition
A clustered index is a table where the data for the rows are stored. In a relational database, if the table column contains a primary key, MySQL automatically creates a clustered index named PRIMARY.
The indexes other than PRIMARY indexes (clustered indexes) called a non-clustered index. The non-clustered indexes are also known as secondary indexes.
Use for
It can be used to sort the record and store the index in physical memory.
It creates a logical ordering of data rows and uses pointers for accessing the physical data files.
Size
Its size is large.
Its size is small in comparison to a clustered index.
Data Accessing
It accesses the data very fast.
It has slower accessing power in comparison to the clustered index.
Storing Method
It stores records in the leaf node of an index.
It does not store records in the leaf node of an index that means it takes extra space for data.
Additional Disk Space
It does not require additional reports.
It requires an additional space to store the index separately.
Type of Key
It uses the primary key as a clustered index.
It can work with unique constraints that act as a composite key.
Contains in Table
A table can only one clustered index.
A table can contain one or more than a non-clustered index.
Index Id
A clustered index always contains an index id of 0.
A non-clustered index always contains an index id>0.
0
相关文章:Python MySQL-Where子句 Python MySQL-Where子句 如果# […]...
Python MySQL-订购依据 Python MySQL-订购依据 使& […]...
MySQL教程 MySQL教程 MySQL教程提供了MySQL的基本和高级概念。我们的MySQL教程专为初学者和专业人士设计。 […]...
MySQL功能 MySQL功能 MySQL是基于SQL(结构化查询语言)查询的关系数据库管理系统(RDBMS)。它是用于访问和 […]...
MySQL创建数据库 MySQL创建数据库 数据库用于以组织形式存储记录的集合。它使我们能够将数据保存到表,行,列和索引中,以便经常 […]...
MySQL DROP表 MySQL DROP表 MYSQL使用Drop Table语句删除现有表。该语句从数据库中永久删除表的完整数据 […]...
MySQL Select语句 MySQL SELECT语句 MySQL中的SELECT语句用于从一个或多个表中获取数据。我们可以使用此语句检 […]...
MySQL替换 MySQL替换 MySQL中的REPLACE语句是SQL标准的扩展。该语句与INSERT语句的工作原理相同,不 […]...
最后
以上就是外向麦片为你收集整理的mysql 群集索引_MySQL群集索引和非群集索引之间的区别的全部内容,希望文章能够帮你解决mysql 群集索引_MySQL群集索引和非群集索引之间的区别所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复