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

歡迎訪問 生活随笔!

生活随笔

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

数据库

mysql 线上加索引_MySQL加索引都经历了什么?

發布時間:2024/10/12 数据库 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 线上加索引_MySQL加索引都经历了什么? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先介紹一下MySQL的索引:

主流的索引也就分為兩類:聚簇索引、非聚簇索引

其實還有什么哈希索引(不適合排序)、唯一索引(相同的插入不進來,保證索引的唯一性)

但是我們用的最多的也就是聚簇以及非聚簇了---這兩個最大的區別也就是一個回表一個不回表

那我們再來說說索引的存儲:別的文章已經寫的很清楚了,就是一個B+樹的數據結構,根節點存兩個東西,一個是索引的值,一個是主鍵的值,通過索引找到了信息之后,再來個回表操作就可以查到我們想要的數據了

我們再來說說我們上面說的根節點,根節點存的是數據行信息還是數據頁信息?

計算機數據都是以頁來存儲的,一頁是4KB,根節點存的就是數據頁信息,然后在通過二分法,找到數據行信息,再來回表。

說主題,MySQL在一個表上(這個表是有數據的),如果要新增索引都經歷了什么?

個人分析:首先,一個表是已經建好了的,已經有數據了,我們知道,新增索引是要新建一個新的索引的B+樹的數據結構的,那么我們新增這個索引,要先把新增索引的字段數據都查出來,然后根據這字段的數據信息再來構建一個新的B+樹的數據結構。

那么是不是新增索引的時候要經過一下幾步:

1.鎖表

2.查處字段的數據信息

3.根據這個來建立一個新的索引

4.釋放鎖

其實這個鎖,加個讀鎖就ok了,沒有必要加寫鎖。

然后,再分析一下,給一個表加字段。

是不是跟索引的操作是一樣的呀?就是原理不一樣,這個原理是操作的回表的時候回到的主表,對主表進行的操作。原理完全不一樣。但是步驟是一樣的。

然后,再來說說刪除索引有什么影響?

根據上面分析的,刪除就是刪除一個索引信息,直接刪除就好,啥操作都不需要,直接干就完事。沒有影響。

所以,不要輕易對大表,線上的表下手。若要下手,網上有對應教程。

總結

以上是生活随笔為你收集整理的mysql 线上加索引_MySQL加索引都经历了什么?的全部內容,希望文章能夠幫你解決所遇到的問題。

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