五月天青色头像情侣网名,国产亚洲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ó)家法律
阿城市| 黄龙县| 清远市| 方城县| 青神县| 朝阳市| 肇源县| 阿勒泰市| 滨州市| 灵山县| 翼城县| 介休市| 隆尧县| 巩留县| 临漳县| 顺平县| 马公市| 红原县| 太康县| 明溪县| 沈阳市| 乌恰县| 金阳县| 齐河县| 镶黄旗| 离岛区| 万盛区| 通河县| 黄陵县| 广西| 东兴市| 依安县| 奉新县| 都安| 通榆县| 兴仁县| 四子王旗| 赤峰市| 安图县| 阿鲁科尔沁旗| 古交市|