日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

在mysql中建立聚簇索引_给我一分钟,让你彻底明白MySQL聚簇索引和非聚簇索引...

發布時間:2023/12/10 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在mysql中建立聚簇索引_给我一分钟,让你彻底明白MySQL聚簇索引和非聚簇索引... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

推薦閱讀:吊打面試官!MySQL靈魂100問,你能答出多少?

MySQL的InnoDB索引數據結構是B+樹,主鍵索引葉子節點的值存儲的就是MySQL的數據行,普通索引的葉子節點的值存儲的是主鍵值,這是了解聚簇索引和非聚簇索引的前提

什么是聚簇索引?

很簡單記住一句話:找到了索引就找到了需要的數據,那么這個索引就是聚簇索引,所以主鍵就是聚簇索引,修改聚簇索引其實就是修改主鍵。

什么是非聚簇索引?

索引的存儲和數據的存儲是分離的,也就是說找到了索引但沒找到數據,需要根據索引上的值(主鍵)再次回表查詢,非聚簇索引也叫做輔助索引。

clustered index(MySQL官方對聚簇索引的解釋)

The InnoDB term for a primary key index. InnoDB table storage is organized based on the values of the primary key columns, to speed up queries and sorts involving the primary key columns. For best performance, choose the primary key columns carefully based on the most performance-critical queries. Because modifying the columns of the clustered index is an expensive operation, choose primary columns that are rarely or never updated.注意標黑的那段話,聚簇索引就是主鍵的一種術語

一個例子

下面我們創建了一個學生表,做三種查詢,來說明什么情況下是聚簇索引,什么情況下不是。

create table student ( id bigint, no varchar(20) , name varchar(20) , address varchar(20) , PRIMARY KEY (`branch_id`) USING BTREE, UNIQUE KEY `idx_no` (`no`) USING BTREE)ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;

第一種,直接根據主鍵查詢獲取所有字段數據,此時主鍵是聚簇索引,因為主鍵對應的索引葉子節點存儲了id=1的所有字段的值。

select * from student where id = 1

第二種,根據編號查詢編號和名稱,編號本身是一個唯一索引,但查詢的列包含了學生編號和學生名稱,當命中編號索引時,該索引的節點的數據存儲的是主鍵ID,需要根據主鍵ID重新查詢一次,所以這種查詢下no不是聚簇索引

select no,name from student where no = 'test'

第三種,我們根據編號查詢編號(有人會問知道編號了還要查詢?要,你可能需要驗證該編號在數據庫中是否存在),這種查詢命中編號索引時,直接返回編號,因為所需要的數據就是該索引,不需要回表查詢,這種場景下no是聚簇索引

select no from student where no = 'test'

總結

主鍵一定是聚簇索引,MySQL的InnoDB中一定有主鍵,即便研發人員不手動設置,則會使用unique索引,沒有unique索引,則會使用數據庫內部的一個行的id來當作主鍵索引,其它普通索引需要區分SQL場景,當SQL查詢的列就是索引本身時,我們稱這種場景下該普通索引也可以叫做聚簇索引,MyisAM引擎沒有聚簇索引。

總結

以上是生活随笔為你收集整理的在mysql中建立聚簇索引_给我一分钟,让你彻底明白MySQL聚簇索引和非聚簇索引...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。