五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

索引與算法(INnoDB存儲(chǔ)引擎)

2022-08-31 07:48 作者:大濤先生_  | 我要投稿


image-20220831073828336

索引與算法

InnoDB存儲(chǔ)引擎支持&常見索引

  1. B+樹索引

  2. 全文索引

  3. hash索引

B+ 樹索引不能給具體行數(shù)據(jù),索引只能找到行所在的頁,讀到內(nèi)存之后,再進(jìn)行查找


mysql5.5之前(不包括5.5)增加索引流程

  1. 創(chuàng)建臨時(shí)表

  2. 原始數(shù)據(jù)導(dǎo)入臨時(shí)表

  3. 刪除原表

  4. 修改臨時(shí)表為原來表名

缺點(diǎn):大表的索引添加修改,需要很長(zhǎng)時(shí)間,且修改時(shí)間內(nèi)數(shù)據(jù)庫不可用


InnoDB1.0.x解決了這個(gè)痛點(diǎn)問題

解決方案:引入FIC(快速索引創(chuàng)建)

  1. 創(chuàng)建索引的表上增加S鎖(不需要重建表)

  2. 添加S鎖期間,只能讀操作

  3. 刪除索引,只需要存儲(chǔ)引擎更新內(nèi)部視圖,將輔助索引標(biāo)記為可用

  4. FIC 僅限于輔助索引,主鍵操作依舊需要重建表


OSC(在線架構(gòu)改變)

Online DDL

FIC 可以避免InnoDB創(chuàng)建臨時(shí)表,提高索引創(chuàng)建的效率,但是會(huì)阻塞DML,OSC也沒有完美解決這個(gè)問題,mysql5.6開始支持Online DDL

  1. 輔助索引的創(chuàng)建與刪除

  2. 改變自增長(zhǎng)

  3. 添加或者刪除外鍵約束

  4. 列的重命名

MRR(減少磁盤隨機(jī)訪問,轉(zhuǎn)化為相對(duì)有序的訪問)

  1. mysql 5.6開始支持MRR

  2. 適用范圍 range ref eq_ref

  3. 優(yōu)勢(shì)

    1. 使數(shù)據(jù)訪問相對(duì)有序,查詢輔助索引時(shí),根據(jù)查詢結(jié)果按照主鍵排序,按照主鍵排序順序進(jìn)行查找

    2. 減少緩沖池中頁被替換的次數(shù)

    3. 批量處理對(duì)鍵值對(duì)的查詢操作

  4. MRR工作原理

    1. 查詢得到的輔助索引放到緩存里面(根據(jù)輔助索引鍵值對(duì)排序)

    2. 緩存中鍵值對(duì)按照RowID排序

    3. 根據(jù)RowID排序順序?qū)嶋H訪問數(shù)據(jù)文件

    4. 緩沖池不夠大的時(shí)候 MRR會(huì)失效

ICP(根據(jù)索引進(jìn)行查詢的優(yōu)化模式)

  1. mysql5.6之后開始支持

  2. ICP工作原理

    1. 根據(jù)索引查找記錄,然后直接根據(jù)where條件過濾數(shù)據(jù)(過濾數(shù)據(jù)操作在引擎層操作)

  3. ICP使用范圍:

    1. myidsam引擎&InnoDB引擎

    2. 支持 range,ref,eq_ref,ref_or_null類型查詢

哈希算法

哈希表(散列表)

  1. 解決hash碰撞采用鏈表法

InnoDB存儲(chǔ)引擎的哈希算法

自適應(yīng)哈希索引

  1. DBA無法干預(yù)

  2. 只能用來搜索等值查詢


全文檢索

  1. InnoDB引擎1.2.x支持,myisam支持

  2. InnoDB存儲(chǔ)全文檢索索引限制

    1. 每張表只能有一個(gè)全文索引的索引

    2. 多列組合而成的全文索引的索引列必須使用相同的字符集和排列規(guī)則

    3. 不支持沒有單詞界定符的語言(中文,日文,韓語)

倒排索引

  1. 輔助表存儲(chǔ)單詞與單詞自身在的一個(gè)或者多個(gè)所在位置的映射

    1. 位置存儲(chǔ)的是位置數(shù)組


索引與算法(INnoDB存儲(chǔ)引擎)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
奇台县| 杭锦后旗| 沁水县| 黑山县| 盱眙县| 南平市| 新邵县| 公安县| 安平县| 波密县| 偏关县| 阿拉善盟| 婺源县| 安丘市| 淅川县| 农安县| 霍城县| 双辽市| 慈利县| 信阳市| 稻城县| 安西县| 大姚县| 乐平市| 左云县| 泸溪县| 江陵县| 韶山市| 织金县| 临湘市| 武穴市| 贵定县| 景东| 莫力| 中西区| 漯河市| 德格县| 阿合奇县| 本溪市| 株洲市| 昌宁县|