sql優化(面試必問一)

2021-07-15 18:16:35 字數 1211 閱讀 2351

前言:7月13號 至7月26號面試總結

比較棘手的的問題:

近來面試找工作經常會遇見這種問題: 做過資料庫優化嗎?大資料量基礎過嗎?系統反應慢怎麼查詢?

這時候就需要你談一下sql優化相關的內容 ,   一下幾個方面

1、慢查詢

2、索引

3、拆分表

4: 理論上,盡量使用多表連線(join)查詢(避免子查詢)

show status like 'uptime';

show [session|global] status like 'com_select';

show status like 'connections';

慢查詢(預設10秒)

show status like 'slow_querties';

以安全模式啟動

show index from emp

btree

20180327更新

b樹:有序陣列+平衡多叉樹;

b+樹:有序陣列鍊錶+平衡多叉樹;

從上圖你能看到,乙個內結點x若含有n[x]個關鍵字,那麼x將含有n[x]+1個子女

為什麼說b+-tree比b 樹更適合實際應用中作業系統的檔案索引和資料庫索引?

1)b+樹的磁碟讀寫代價更低

b+樹的內部結點並沒有指向關鍵字具體資訊的指標。因此其內部結點相對於b樹更小。如果把所有同一內部結點的關鍵字存放在同一盤塊中,那麼盤塊所能容納的關鍵字數量也越多。一次性讀入記憶體中的需要查詢的關鍵字也就越多。相對來說io讀寫次數也就降低了。

2) b+-tree的查詢效率更加穩定

由於非終結點並不是最終指向檔案內容的結點,而只是葉子結點中關鍵字的索引。所以任何關鍵字的查詢必須走一條從根結點到葉子結點的路。所有關鍵字查詢的路徑長度相同,導致每乙個資料的查詢效率相當。

myisam索引檔案和資料檔案是分離的,索引檔案僅儲存資料記錄的位址。因此,myisam中索引檢索的演算法為首先按照b+tree搜尋演算法搜尋索引,如果指定的key存在,則取出其data域的值,然後以data域的值為位址,讀取相應資料記錄。而在innodb中,表資料檔案本身就是按b+tree組織的乙個索引結構,這棵樹的葉結點data域儲存了完整的資料記錄。

myisam的索引方式也叫做「非聚集」的

面試必問之 static

static常見用法三個,第乙個是和多檔案系統結合使用,決定是否可以被訪問。第二個是和變數初始化結合,乙個元素的初始化只能初始化一次,陣列初始化預設為0。1。多檔案結構中,static 對 variance fun的隱藏功能。static int i static void fun void fun...

面試必問之 const

主要用法如下 目錄 1.常量 常指標 常引用 2.修飾函式引數 2.修飾函式引數 3.修飾成員函式 const 常量不能改變 const int x 5 x 12 常指標不能通過指標改變變數的值,但是可以改變變數的指向。const 常指標 int x,y const int p x p 2 erro...

MYSQL面試必問 INSERT BUFFER

insert buffer即合併插入快取,從mysql 5.1.x版本 innodb 1.0.x 開始引入changebuffer,是insert buffer公升級版,不僅包括insert buffer,還包括update buffer delete buffer purge buffer。我們可...