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

歡迎訪問 生活随笔!

生活随笔

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

数据库

面试题:MySQL的innodb和myisam

發布時間:2025/3/11 数据库 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 面试题:MySQL的innodb和myisam 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一 Innodb

1. 簡介
索引是一種排好序的用于快速查找的數據結構。


**根據官網手冊InnoDB支持B-tree索引、聚簇索引(Clustered indexes)、全文索引(Full-text search indexes)、不支持hash索引(InnoDB在內部利用哈希索引來實現其自適應哈希索引功能)、不支持T-tree索引。**Geospatial indexing support(坐標索引支持),支持索引緩存;
支持外鍵、支持事務。鎖粒度是行鎖。
2.聚簇索引

注:與myisam不同的是,Innodb葉子節點保存的是所有的數據。
每個Innodb表都有一個特殊的索引被稱作聚簇索引,它存儲了一行的數據。主鍵可以看做是索引的同義詞,InnoDB會使用聚簇索引對DML操作進行優化:

  • 在表上定義主鍵時,Innodb將其作為聚簇索引;
  • 如果沒有定義主鍵,MySQL將找到第一個UNIQUE索引,其中所有鍵列都是NOT NULL,而InnoDB將它用作聚簇索引。
  • 如果沒有主鍵,也沒有合適的索引。Innodb將使用行ID值生成列名為GEN_CLUST_INDEX的隱藏聚簇索引。它是一個6字節的字段,在插入新行時,單調增加。因此物理存儲順序就是其插入的順序。

通過聚簇索引查找是很快的,因為索引直接指向包含所有數據的頁。

3.輔助索引
除了聚簇索引之外,其它都被稱為輔助索引(Secondary Indexes)。輔助索引中的每條記錄都包含了一行的主鍵列及輔助索引指定的列。Innodb使用主鍵值搜索在聚簇索引中的某一行的值。因此有一個短的主鍵是更有利的。

4.索引的物理結構
除空間索引外,InnoDB索引是B-tree數據結構。 空間索引使用R-trees,R-trees是用于索引多維數據的專用數據結構。 索引記錄存儲在其B-tree或R-tree數據結構的葉子頁中。 索引頁的默認大小為16KB。
Innodb會剩下1/16的頁空間,如果記錄是順序插入,索引頁會利用15/16;如果是隨機插入,會利用1/2到15/16。
通過設置MERGE_THRESHOLD,該值表示當頁面的利用率降低到該值及以下時,會進行頁面合并,節省空間。默認是50%。
也能通過設置innodb_page_size來設置頁面大小。

5.排序索引構建
InnoDB執行批量加載,而不是在創建或重建索引時一次插入一個索引記錄。 這種索引創建方法也稱為排序索引構建(Sorted Index Builds)。 空間索引不支持排序索引構建。全文索引支持排序索引。
在排序索引構建構建期間,redo日志被禁用,但會設置一個檢查點確保索引構建能忍受宕機或失敗。

6.全文索引
InnoDB 全文索引(FULLTEXT)是一種倒排索引(inverted index),它儲存單詞列表,并為每個單詞儲存出現的文檔列表。
具體倒排索引介紹可以查看文章:正排索引和倒排索引;

二 myisam引擎

1.索引
myisam支持B-tree索引、支持全文索引 (Full-text search indexes)、坐標索引支持 (Geospatial indexing support)、不支持聚簇索引、不支持hash索引、不支持T-tree索引。
另不支持外鍵、不支持事務。鎖粒度是表鎖。存儲限制是256TB。
MyISAM表有以下特征:

  • MyISAM表的最大索引數量是64,每個索引最多16列;
  • BLOB and TEXT能被索引;
  • 索引列中允許使用NULL值。 每個key需要0到1個字節。

每個myisam表存儲為兩個文件,數據文件以.MYD結尾,還有一個索引文件以.MYI結尾。由此可見MyISAM與Innodb的索引并不一樣,myisam的主索引和輔助索引結構上一樣,它們的葉子節點都存儲著某條記錄的位置,而并不存儲數據。

2. MyISAM表存儲格式
MyISAM支持三種不同的存儲格式 ,固定格式、動態格式和壓縮格式;當表不包含可變長度的列(VARCHAR, VARBINARY, BLOB, or TEXT)時,默認使用固定格式。

三 創建和使用索引注意事項

1. 創建索引的注意事項

  • 頻繁作為查詢條件的字段適合建立索引;
  • 查詢中與其它表關聯的字段,外鍵關系建立索引;
  • 單值和復合索引,優先選擇復合索引;
  • 查詢中排序的字段,排序字段若通過索引去訪問將大大提高查詢速度;
  • 查詢中統計或者分組字段要建立索引;
  • where條件里用不到的字段不創建索引;
  • 對于單鍵索引,盡量針對當前查詢過濾性好的索引;
  • 在選擇組合索引的時候,當前查詢中過濾性最好的字段在索引字段的順序中,位置越靠前越好;
  • 在選擇組合索引的時候,盡量選擇可以能夠包含當前查詢中的where子句中更多字段的索引;
  • 盡可能通過分析統計信息和調整查詢的寫法來達到選擇合適索引的目的;
  • 頻繁更新的字段不要建立索引;

2. 使用索引要注意的事項

  • 對于字符串索引,一定要加引號;
  • 如果索引了多列,要遵循最佳左前綴原則;
  • 不要在索引上做任何操作,會導致索引失效,而轉向全表掃描;
  • 存儲引擎不能使用范圍條件右邊的列;
  • 不等于、or都會使索引失效;

總結

以上是生活随笔為你收集整理的面试题:MySQL的innodb和myisam的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 91精品91 | 亚洲AV成人无码一二三区在线 | 亚洲成人77777 | 日本大尺度床戏揉捏胸 | 免费日本黄色片 | 色婷婷aⅴ一区二区三区 | 精品久久久久亚洲 | 女人扒开腿让男人捅爽 | 亚洲婷婷网 | 91av成人| 成人动漫亚洲 | 黑丝啪啪| 国产良妇出轨视频在线观看 | 草草影院最新地址 | 欧美一卡二卡在线观看 | 亚洲精品lv | 人妻久久一区二区 | 欧美成人三级精品 | 96av在线视频 | 亚洲热在线观看 | 亚洲国产aⅴ成人精品无吗 日韩乱论 | 殴美毛片 | 99riav视频 | 好吊妞一区二区三区 | 午夜激情在线 | 亚洲天堂网络 | 免费婷婷 | 亚洲国产欧美精品 | 国v精品久久久网 | 岛国av免费| 国产成人亚洲一区二区 | 91手机在线观看 | 欧美日韩八区 | 日本高清免费aaaaa大片视频 | 成人教育av在线 | 午夜av网站 | 一本大道av伊人久久综合 | 午夜一二区 | 风韵多水的老熟妇 | 国产原创中文av | 欧美另类极品videosbest使用方法 | 性欧美bbw| 一级香蕉视频在线观看 | 国产三级黄色 | 雪白的扔子视频大全在线观看 | 最新在线黄色网址 | 在线播放毛片 | 黄色刺激视频 | 精品视频导航 | 日韩诱惑| 图书馆的女友动漫在线观看 | 私密spa按摩按到高潮 | 91丨九色| 精品国产免费av | 国产精品久久国产精品99 | 性高潮久久久久久久久久 | 美女脱光衣服让男人捅 | 99热这里只有精品1 亚洲人交配视频 | 少妇一级淫片免费放播放 | 国产91在线高潮白浆在线观看 | 污视频在线免费观看 | 免费av资源 | 精品国产欧美一区二区三区成人 | 久久7777| 337p日本大胆噜噜噜噜 | 色乱码一区二区三在线看 | 自拍亚洲国产 | 爱爱色图 | 国产日韩欧美精品一区二区 | 亚洲最新偷拍 | 91中文在线 | 久久久久亚洲av成人人电影 | 中文字幕资源在线 | 牛av| 国产小视频一区 | 在线不欧美 | 免费黄色网址视频 | www天堂av| av一级在线 | 都市豪门艳霸淫美妇 | 97在线观看 | 亚洲 激情 小说 另类 欧美 | 超碰资源总站 | 桥本有菜aⅴ一区二区三区 在线午夜电影 | 亚洲AV成人无码久久精品同性 | 手机看片1024国产 | 中文字幕在线日本 | 永久在线 | 伊人夜夜| 神宫寺奈绪一区二区三区 | 黄网页在线观看 | 国产精品久久久久一区二区 | 人妻 日韩精品 中文字幕 | 最近中文字幕mv免费高清在线 | 亚洲不卡av一区二区 | 98自拍视频 | 欧美图片第一页 | 天堂va蜜桃一区二区三区漫画版 | 国产精品电影一区二区三区 |