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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MyISAM和InnoDB的索引在实现上的不同

發布時間:2025/4/16 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MyISAM和InnoDB的索引在实现上的不同 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1 MyISAM只把索引載入內存,數據緩存依賴于操作系統,InnoDB把索引和數據都載入內存緩沖?

2 MyISAM數據庫中的數據是按照插入的順序保存,在每個索引節點中保存對應的數據行的地址,理論上說主鍵索引和其他索引是一樣的,InnoDB數據庫中的數據和主鍵節點保存在一起,所有其他索引節點中保存的是主鍵索引的值。?

3 對于字符串索引,MyISAM默認采用增量保存,例如第一個索引值是'perform',第二個索引的值是'performance', 在索引文件中第二個索引被保存為'7,ance'。這樣能夠減小索引的尺寸。?

4 MyISAM保存索引的狀態信息在磁盤里,每次執行ANALYZE TABLE會更新這個信息。InnoDB則通過在啟動的時候隨機讀取索引來估計索引的狀態信息,所以Show Index的結果對于MyISAM是精準的,但對于InnoDB不是絕對精準。?

5 索引長期運行之后會產生碎片,一種碎片是一行數據被保存在不同的數據段,另一種是連續的表空間或行在磁盤上被分散地保存。對于MyISAM兩種索引碎片都 會出現,對于InnoDB只會出現后一種因為InnoDB不會把短行保存到不同的數據段。要消除索引碎片一種方法是OPTIMIZE TABLE,另一種方法是把數據重新倒入。?

針對MyISAM和InnoDB不同的索引結構,要注意以下幾點:?

1 在InnoDB表中插入數據一定要盡可能按照主鍵增加的順序,AUTO_INCREMENT最好,這樣插入的速度最快?

2 因為InnoDB索引節點中保存的是主鍵的值,所以主鍵的值越簡單越好?

3 對于InnoDB表,在查詢的時候如果只需要查找索引列,就不要加入其它列,這樣速度最快。

轉載于:https://www.cnblogs.com/kabi/p/5897514.html

總結

以上是生活随笔為你收集整理的MyISAM和InnoDB的索引在实现上的不同的全部內容,希望文章能夠幫你解決所遇到的問題。

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