mysql聚集索引和二级索引_mysql8 参考手册--聚集索引和二级索引
每個InnoDB表都有一個特殊的索引,稱為聚簇索引 ,用于存儲行數據。通常,聚簇索引與主鍵同義 。為了從查詢,插入和其他數據庫操作中獲得最佳性能,您必須了解如何InnoDB使用聚簇索引為每個表優化最常見的查找和DML操作。
在PRIMARY KEY表上定義a 時,InnoDB將其用作聚簇索引。為您創建的每個表定義一個主鍵。如果沒有邏輯唯一且非空的列或列集,請添加一個新的 自動遞增 列,其值將自動填充。
如果您沒有PRIMARY KEY為表定義,MySQL會UNIQUE在所有鍵列所在的位置找到第一個索引,NOT NULL并將 InnoDB其用作聚集索引。
如果表沒有索引PRIMARY KEY或沒有合適的 UNIQUE索引,則InnoDB 內部生成一個隱藏的聚集索引GEN_CLUST_INDEX,該索引在包含行ID值的合成列上命名 。這些行由InnoDB分配給該表中各行的ID排序 。行ID是一個6字節的字段,隨著插入新行而單調增加。因此,按行ID排序的行實際上在插入順序上。
聚集索引如何加快查詢速度
通過聚集索引訪問行是快速的,因為索引搜索直接導致包含所有行數據的頁面。如果表很大,則與使用不同于索引記錄的頁面存儲行數據的存儲組織相比,聚集索引體系結構通常可以節省磁盤I / O操作。
二級索引如何與聚簇索引相關
除聚集索引之外的所有索引都稱為 輔助索引。在中InnoDB,輔助索引中的每個記錄都包含該行的主鍵列以及為輔助索引指定的列。 InnoDB使用此主鍵值在聚集索引中搜索行。
如果主鍵較長,則輔助索引將使用更多空間,因此具有短主鍵是有利的。
總結
以上是生活随笔為你收集整理的mysql聚集索引和二级索引_mysql8 参考手册--聚集索引和二级索引的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql数据迁移到teradata_M
- 下一篇: mariadb 和mysql主从_Mar