日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

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

發(fā)布時(shí)間:2024/10/12 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 线上加索引_MySQL加索引都经历了什么? 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

首先介紹一下MySQL的索引:

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

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

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

那我們再來說說索引的存儲:別的文章已經(jīng)寫的很清楚了,就是一個(gè)B+樹的數(shù)據(jù)結(jié)構(gòu),根節(jié)點(diǎn)存兩個(gè)東西,一個(gè)是索引的值,一個(gè)是主鍵的值,通過索引找到了信息之后,再來個(gè)回表操作就可以查到我們想要的數(shù)據(jù)了

我們再來說說我們上面說的根節(jié)點(diǎn),根節(jié)點(diǎn)存的是數(shù)據(jù)行信息還是數(shù)據(jù)頁信息?

計(jì)算機(jī)數(shù)據(jù)都是以頁來存儲的,一頁是4KB,根節(jié)點(diǎn)存的就是數(shù)據(jù)頁信息,然后在通過二分法,找到數(shù)據(jù)行信息,再來回表。

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

個(gè)人分析:首先,一個(gè)表是已經(jīng)建好了的,已經(jīng)有數(shù)據(jù)了,我們知道,新增索引是要新建一個(gè)新的索引的B+樹的數(shù)據(jù)結(jié)構(gòu)的,那么我們新增這個(gè)索引,要先把新增索引的字段數(shù)據(jù)都查出來,然后根據(jù)這字段的數(shù)據(jù)信息再來構(gòu)建一個(gè)新的B+樹的數(shù)據(jù)結(jié)構(gòu)。

那么是不是新增索引的時(shí)候要經(jīng)過一下幾步:

1.鎖表

2.查處字段的數(shù)據(jù)信息

3.根據(jù)這個(gè)來建立一個(gè)新的索引

4.釋放鎖

其實(shí)這個(gè)鎖,加個(gè)讀鎖就ok了,沒有必要加寫鎖。

然后,再分析一下,給一個(gè)表加字段。

是不是跟索引的操作是一樣的呀?就是原理不一樣,這個(gè)原理是操作的回表的時(shí)候回到的主表,對主表進(jìn)行的操作。原理完全不一樣。但是步驟是一樣的。

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

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

所以,不要輕易對大表,線上的表下手。若要下手,網(wǎng)上有對應(yīng)教程。

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。