mysql - MySQL中主键后使用聚集关键字的目的是什么
问题描述
这让我发疯,有人能告诉我在 MySQL 中的主键之后使用聚集关键字的目的是什么吗?我必须在什么情况下使用它?它是否取决于主键数据类型?
例子:
create table Orders
(
OrderID int not null auto_increment,
CustID smallint not null, -- FK Customers table
EmpID smallint not null, -- FK Employees table
constraint pk_Orders primary key clustered (OrderID asc)
);
提前Tnx。
解决方案
SQL 将在主键列的默认值上创建一个索引。
索引的使用与您在书中使用索引类似 - 您想在书中查找某些内容,您查看索引以查看它在书中出现的位置。
显然,你可以发现没有索引,但它会非常慢。
因此,索引是一种可以加快查询速度的东西。 聚集索引(SQL Server、MySQL/InnoDB)是存储在索引 B-Tree 结构中的表。该表没有第二个数据结构(堆表)。
非聚集索引对数据的存储方式没有影响,它只是提供基于索引列在哪里找到特定行的信息。
更多信息可以在这里找到:聚集索引/非聚集索引
推荐阅读
- plot - 从最近的错误值绘制时间序列价格范围日期与日期时间框架不匹配
- shinyapps - 如何为闪亮的应用程序制作安装文件?
- ios - 使用 Flutter/AndroidStudio 开发前端,使用 Swift/ObjC/Xcode 完成后端
- java - BufferedReader 停止从 HttpURLConnection 读取大 Json 而没有错误
- android - Android:通过其他应用程序打开文件
- ios - 在 Swift 中使用 application/vnd.wfa.wsc 创建 NDEF WiFi 记录
- python - 文档说要使用置信度参数,但会引发错误
- youtube-api - 无法检索某些频道的 youtube 频道视频
- javascript - 多条主背景填充选项,覆盖加载条,如何解决?
- python - 如何在一个键下创建具有多个值的特殊字典?