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

歡迎訪問 生活随笔!

生活随笔

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

数据库

MySQL的一级索引和二级索引介绍,HBase中提到的二级索引【笔记自用】

發布時間:2025/4/5 数据库 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL的一级索引和二级索引介绍,HBase中提到的二级索引【笔记自用】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、一級索引

索引和數據存儲在一起,都存儲在同一個B+tree中的葉子節點。一般主鍵索引都是一級索引。

2、二級索引

二級索引樹的葉子節點存儲的是主鍵而不是數據。也就是說,在找到索引后,得到對應的主鍵,再回到一級索引中找主鍵對應的數據記錄。

3、例子介紹

下面我們通過一個具體的示例進行演示一級索引和二級索引。有如下表pl_ranking(編程語言排行榜表),該表包含3個字段,如下:

id:主鍵 plname:編程語言名稱 ranking:排名

3.1 主鍵索引結構


從圖中我們可以看到,索引和數據都在一顆樹的葉子節點,是存在一起的。通過定位索引就直接可以查找到數據。如果查找id=16的編程語言

select id, plname, ranking from pl_ranking where id=16;

則只需要讀取3個磁盤塊,就可以獲取到數據。

3.2 非主鍵索引結構

如果根據字段plname創建索引,B+樹結構如下:

從上圖中我們發現,該B+tree根據plname列進行構建的,只存儲一級索引數據。比如,查找編程語言為“Java”的數據

select id, plname, ranking from pl_ranking where plname=‘Java’;

首先通過二級索引樹中找到Java對應的主鍵id為 “16”(讀取2個磁盤塊)。然后在去主鍵索引中查找id為“16” 的數據(讀取3個磁盤塊)。

3.3 一級索引和二級索引的關系:回表

一級索引可以單獨存在,二級索引不能單獨存在,必須依附于一級索引,這叫做“回表”。

4.0 二級索引存儲主鍵值而不是存儲數據優缺點

優點:
1、減少數據冗余
2、減少行移動或者數據頁分裂時二級索引的維護工作,當數據需要更新的時候,二級索引不需要修改,只需要修改一級索引,一個表只能有一個一級索引,其他的都是二級索引,這樣只需要修改一級索引就可以了,不需要重新構建二級索引
缺點:
根據二級索引查找行的完整數據需要回表
參考自:https://blog.csdn.net/weixin_43606861/article/details/116202806

總結

以上是生活随笔為你收集整理的MySQL的一级索引和二级索引介绍,HBase中提到的二级索引【笔记自用】的全部內容,希望文章能夠幫你解決所遇到的問題。

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