MYSQL常見索引面試題及答案

2021-10-01 20:51:24 字數 2410 閱讀 5755

索引的分類

1、唯一索引:確保資料唯一性

2、非唯一索引:這些字段可以重複,不要求唯一.

3、主鍵索引:是唯一索引的特定型別,建立主鍵時自動建立.

4、聚簇索引: 表中記錄的物理順與鍵值順序相同,表資料和主鍵一起儲存.

5、非聚簇索引: 表資料和索引分兩部分儲存

主鍵和唯一索引的區別?

1、主鍵一定會建立乙個唯一索引,但是有唯一索引的列不一定是主鍵;

2、主鍵不允許為空值,唯一索引列允許空值;

3、乙個表只能有乙個主鍵,但是可以有多個唯一索引;

4、主鍵可以被其他表引用為外來鍵,唯一索引列不可以;

5、主鍵是一種約束,而唯一索引是一種索引,是表的冗餘資料結構,兩者有本質的差別

都在哪些欄位加索引?

1、表的主鍵、外來鍵必須有索引

2、資料量超過300的表應該有索引

3、經常與其他表進行連線的表,在連線欄位上應該建立索引

4、經常出現在where子句中的字段,特別是大表的字段,應該建立索引

5、索引應該建在選擇性高的字段上

怎麼使用索引才能提高索引的命中?

1、如果條件中有or,即使其中有條件帶索引也不會使用(這也是為什麼盡量少用or的原因)

注意:要想使用or,又想讓索引生效,只能將or條件中的每個列都加上索引

2、對於多列索引,不是使用的第一部分(第乙個),則不會使用索引

3、如果列型別是字串,那一定要在條件中將資料使用引號引用起來,否則不使用索引

4、如果mysql估計使用全表掃瞄要比使用索引快,則不使用索引

索引的最左字首了解嗎?

索引index1:(a,b,c)有三個字段,索引是有序的,index1索引在索引檔案中的排列是有序的,首先根據a來排序,然後才是根據b來排序,最後是根據c來排序

索引是越多越好嗎?為什麼?

1、合理的建立索引能夠加速資料讀取效率,不合理的建立索引會拖慢資料庫的響應速度。

2、索引越多,更新資料的速度越慢。

不要在選擇的字段上放置索引,這是無意義的。應該在條件選擇的語句上合理的放置索引,比如where,order by。

例子:select id,title,content,cat_id from article where cat_id = 1;

上面這個語句,你在id/title/content上放置索引是毫無意義的,對這個語句沒有任何優化作用。但是如果你在外鍵cat_id上放置乙個索引,那作用就相當大了

索引的底層資料結構知道嗎?推薦大家看看b-tree和hash,以及磁碟的儲存結構?

b±tree定義

其定義基本與b-tree相同

除了:1、非葉子節點的子樹指標與關鍵字個數相同。

2、非葉子節點的子樹指標p[i],指向關鍵字值(k[i],k[i+1])的子樹。

3、非葉子節點僅用來做索引,資料都儲存在葉子節點中。

4、所有葉子節點均有乙個鏈指標指向下乙個葉子節點。

資料庫主從同步

1、mysql半同步複製

mysql的replication預設是乙個非同步複製的過程,從mysql5.5開始,mysql以外掛程式的形式支援半同步複製,我先談下非同步複製,這樣可以更好的理解半同步複製。

1)非同步複製

mysql預設的複製是非同步的,主庫在執行完客戶端提交的事務後會立即將結果返給給客戶端,並不關心從庫是否已經接收並處理,這樣就會有乙個問題,主如果crash掉了,此時主上已經提交的事務可能並沒有傳到從庫上。

2)半同步複製

對於非同步複製和全同步複製之間,主庫在執行完客戶端提交的事務後不是立刻返回給客戶端,而是等待至少乙個從庫接收到並寫到relay log中才返回給客戶端。相對於非同步複製,半同步複製提高了資料的安全性,同時它也造成了一定程度的延遲,這個延遲最少是乙個tcp/ip往返的時間。所以,半同步複製最好在低延時的網路中使用。

2、資料庫中介軟體

流程:1)所有的讀寫都走資料庫中介軟體,通常情況下,寫請求路由到主庫,讀請求路由到從庫

2)記錄所有路由到寫庫的key,在主從同步時間視窗內(假設是500ms),如果有讀請求訪問中介軟體,此時有可能從庫還是舊資料,就把這個key上的讀請求路由到主庫。

3)在主從同步時間過完後,對應key的讀請求繼續路由到從庫。

MySQL常見面試題及答案

1 使用索引的原則 a.對於查詢頻率高的字段建立索引 b.對排序 分組 聯合查詢頻率高的字段建立索引 c.索引的數目不宜太多 每乙個索引都會占用相應的物理控制項,過多的索引會導致增刪改語句執行效率低 d.盡量選擇唯一性索引,可以更快速的通過索引來確定某條記錄。e.盡量使用資料量少的索引,如果索引的值...

hr常見面試題及答案

1 簡單自我介紹 檢視答案 2 你為什麼想離開現在的工作單位?檢視答案 3 你現在找工作,考慮的幾個最重要的因素有哪些?檢視答案 4 你對我們公司了解有多少?檢視答案 5 你對自己未來有什麼規劃,想走技術路線還是管理路線 檢視答案 6 你對期望的薪資是多少 檢視答案 7 你有什麼優點 檢視答案 8 ...

常見前端面試題及答案

前言 本文是在github上看到乙個大牛總結的前端常見面試題,很多問題問的都很好,很經典 很有代表性。上面沒有答案,我就整理了一下,從網上找了一些相關問題的答案。裡面有一部分問題的答案我也沒有進行考證,不少答案都 於網路,或許會有疏漏之處,僅供大家參考哦!還有一部分問題答案還未整理,大家也可以自己搜...