2021秋招 MySQL索引相關知識

2021-10-08 09:52:08 字數 996 閱讀 4263

1、區域性性原理:

(1)空間區域性性:發現程式和資料的訪問都有聚集成群的傾向,在乙個時間段內,僅使用其中一小部分。

(2)時間區域性性:最近訪問過的程式**和資料,很快又被訪問的可能性很大。

2、磁碟預讀:一般比如要讀取字元a,不僅會讀取字元a,會訪問a在內的一塊資料。(一般預讀的長度為頁的資料)

note:咋許多作業系統中,頁大小為4k.主存和磁碟以頁為單位交換資料。

首先說下索引是什麼:

那麼,底層資料結構為什麼用了b+樹:

首先說下其他資料結構的缺點:無論是二叉樹還是紅黑樹,都會因為樹的深度過深二造成io次數變多,影響資料讀取的效率。

b+樹:

b+樹是為磁碟或其他直接儲存輔助裝置設計的一種平衡查詢樹。

b+樹中,所有記錄節點都是按照鍵值的大小順序存放在同一層的葉子節點上,由各葉子節點指標進行連線。

普通索引:僅加速查詢

唯一索引:加速查詢+列值唯一(可以由null)

主鍵索引:加速查詢+列值唯一(不可以有null)+表中只有乙個

組合索引:多列值組成乙個索引,專門用於組合索引,其效率大於索引合併

全文索引:對文字的內容進行分詞,進行搜尋

對查詢進行優化,應盡量避免全表掃瞄,首先應考慮在where及order by涉及的列上建立索引。

避免全表掃瞄的優化方案:

1、避免在where子句對欄位進行null值判斷,會導致搜尋引擎放棄索引,全表掃瞄;

2、避免使用 !=或<>操作符;

3、避免用or來連線條件;

4、in 或not in 慎用;

5、避免在where子句中對字段進行表示式操作。

1、可以做表拆分,減少單表字段數量,優化表結構;

2、在保證主鍵有效的情況下,檢查主鍵索引的字段順序,使得查詢語句中條件的字段順序和主鍵索引的字段順序保持一致;

3、建立合理的索引;

4、可以結合redis,memchache等快取服務,把複雜的sql進行拆分,充分利用二級快取,減少資料庫的io操作。

2021秋招備戰 MySQL面試相關知識

事務時訪問並可能更新資料庫中各種資料項的乙個程式執行單元。是乙個完整的業務邏輯單元事務不可以再分割 和事務相關的語句只有dml語句。資料庫主要分為五大模組 1.dql 資料查詢語言 凡是select語句都是 2.dml 資料操作語言 對錶內的資料進行增 刪 改 3.ddl 資料定義語言 庫和表的定義...

2021秋招網易筆試

給定乙個字串 s,你可以通過在字串前面新增字元將其轉換為回文串。找到並返回可以用這種方式轉換的最短回文串。示例 1 輸入 aacecaaa 輸出 aaacecaaa 示例 2 輸入 abcd 輸出 dcbabcd 把要處理的字元分成回文串和非回文串,再將非回文串逆置加到頭部。要注意,已經移動出最長回...

2023年的秋招

本人小碩畢業,也參加了2021年的秋招工作。當年本科畢業的時候也是在找工作和考研兩個方面糾結了好久,也參加了本科畢業時的秋招和春招,後來稀里糊塗的就考研究生了。不過慶幸的是最後上岸了,好景不長碩士的畢業季也如期而至,經歷了今年新冠疫情的衝擊本來兩年半的學術生涯被壓縮到了1年,最後半年找工作 文 畢業...