<menu id="ycqsw"></menu><nav id="ycqsw"><code id="ycqsw"></code></nav>
<dd id="ycqsw"><menu id="ycqsw"></menu></dd>
  • <nav id="ycqsw"></nav>
    <menu id="ycqsw"><strong id="ycqsw"></strong></menu>
    <xmp id="ycqsw"><nav id="ycqsw"></nav>
  • mysql關系型數據庫的優缺點(3分鐘了解mysql數據庫知識)


    Mysql數據庫是目前一款非?;鸨年P系型數據庫。

    當我們談到關系型數據庫的時候,總會談到索引(index),在面試中也是個高頻問題。

    可能我們在剛剛接觸數據庫的時候,對于索引我們總會聽說索引的優點是加快查詢的速度,利用索引可以確定表中數據的唯一性,使用group by、order by等分組、排序的時候,group by、order by后面所根據的字段最好是被索引包含的字段,因為被索引包含的字段是已經排好序的了,可以減少操作時間。同時也會聽說不能創建太多的索引,因為在對表的數據進行insert、update、delete操作的時候,也需要動態的維護索引??傊覀兟犝f索引的很多優點和缺點在此就不在累述。

    那么我們是否考慮過這些優缺點的依據是什么?為什么索引會有這些優缺點?

    其實很簡單,依據主要是數據結構中的B+tree。

    那么數據庫中的索引和B+tree又有什么關系???別著急,且聽我慢慢道來。

    首先我們創建一個數據table

    CREATE TABLE `student`.`Untitled` (

    `studentId` varchar(4) NOT NULL,

    `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,

    `age` int(255) NOT NULL,

    PRIMARY KEY (`studentId`) USING BTREE,

    INDEX `studentIndex`(`studentId`) USING BTREE

    ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;

    創建了一個student表,里面有三個字段學生Id、名字、年齡,其中學生Id字段添加索引,引擎類型為InnoDB。

    平時你背誦的MySql索引優缺點,你真的了解嗎?

    圖1

    現在我們添加上了索引,此時會根據索引來構建一個B+tree結構。類似下圖結構:

    平時你背誦的MySql索引優缺點,你真的了解嗎?

    圖2 B+樹

    當然我這里這是畫了一個類似圖,其實在數據量足夠大的時候,樹的根節點里面可以存儲很多的數據,這就解決了樹高度的問題(此知識點后面章節會詳解),如果數據的高度小了,檢索數據的次數就會相應減少。

    平時你背誦的MySql索引優缺點,你真的了解嗎?

    圖三 數據表和索引B+樹的對應圖

    我們通過圖三就可以明白我上面所列舉的索引的優缺點了。

    1.當我們通過索引來查詢數據的時候,例如查詢studengId為6的數據,我們通過檢索B+樹只需要3次就能找到數據,而且樹的根節點還是在內存中,檢索速度很快的,但是如果不走索引,需要逐條檢索信息,需要檢索6次才能找到數據,因為這些數據都是存儲在磁盤上的,每次檢索都是一個IO,如果數據量大了,檢索數據是很浪費性能的。

    2.我們看圖三中索引列在B+樹中都是排好序的,右面葉子節點的值總是比左邊葉子節點的值大(B+樹的性質)。這也就解釋了上面優點中排好序了。

    3.當我們每次修改、刪除、更新數據的時候,都會重新維護索引,其實主要就是重新構建這個B+樹。

    4.創建多個索引,就會生成多個B+樹,每個都是需要存儲的,所以不建議創建太多的索引。

    所以我們平時看到的索引優缺點都是主要圍繞著這個B+樹結構來解釋的。

    后續關于索引的深度內容將繼續更新,只有懂得了索引,才可能對sql進行高效的優化。

    版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。

    發表評論

    登錄后才能評論
    国产精品区一区二区免费