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

歡迎訪問 生活随笔!

生活随笔

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

数据库

数据库---mysql的索引和引擎

發布時間:2024/7/23 数据库 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据库---mysql的索引和引擎 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

mysql 的索引和引擎

mysql的數據都是存放在磁盤上的,都說索引會使查詢變快,那么肯定是索引用了特殊的數據結構。

常見的數據結構有:

  • hash
    hash就是咱們在hashMap中的那個hash,用hash確實快,而且時間復雜度是O(1),但是hash不適合范圍查詢,所以索引的主要數據結構應該不是hash。

  • 二叉樹
    普通二叉樹作為最初的樹形結構,確實在某些情況下就很快了,但是由于對于自增id這種索引,二叉樹會極度傾斜,最差的情況就是一條枝,所以也不適合做索引的結構。

  • 紅黑樹
    同理,紅黑樹在平衡上做了改進,但是針對自增id這種索引,在數據量很大的情況下,仍然會出現整體右傾的狀況,所以紅黑樹也不是很適合。

  • B+tree
    對,就剩B+tree了,由于這個樹的設計原因,他會極度平衡,所以結論就是索引用的數據結構就是他。

  • mysql 常見的引擎

  • MyISAM引擎 (非聚集索引方式)
    查詢性能極佳,但不支持事務
  • INNODB引擎(聚集索引方式)
    查詢性能稍遜MyISAM,但支持事務
  • 為什么MyISAM引擎會比INNODB引擎查詢性能還快

    這個要從存儲文件來看,分別設置兩種引擎,存儲相同的數據,我們在本地測試的時候會發現兩種引擎有不同的文件存儲。

  • INNODB引擎
    .frm:存儲表的結構
    .ibd:存儲表的索引和內容
  • MyISAM引擎
    .frm:存儲表的結構
    .MYD:存儲表的內容
    .MYI:存儲表的索引
  • 我們可以從上面的對比看出,MyISAM對于表的內容和索引是分開存儲的,而INNODB是在一個文件存儲的,簡單理解,同樣的內容和索引,合在一起存儲,那么這個文件必然就會比較大,相比MyISAM引擎的 .MYI來說,所以文件越大,那么查詢就會越慢。

    而且,從上面的對比也能看出,INNODB引擎存儲表的索引和內容,是一個文件,這也是為什么他能支持事務的一個原因,而MyISAM引擎對于索引和內容是分開的,所以這也是他不支持事務的一個原因吧。

    總結

    以上是生活随笔為你收集整理的数据库---mysql的索引和引擎的全部內容,希望文章能夠幫你解決所遇到的問題。

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