- 相關推薦
mysql dba面試題及答案
1, mysql的復制原理以及流程。
(1)先問基本原理流程,3個線程以及之間的關聯。
(2)再問一致性,延時性,數據恢復。
(3)再問各種工作遇到的復制bug的解決方法
3,問mysql中varchar與char的區別以及var50)中的30代表的涵義。
(1)varchar與char的區別
char是一種固定長度的類型,varchar則是一種可變長度的類型
(2)var50)中50的涵義
最多存放50個字節
(3)int(20)中20的涵義
int(M)中的M indicates the maximum display width (最大顯示寬度)for integer types. The maximum legal display width is 255.
(4)為什么MySQL這樣設計?
4,問了innodb的事務與日志的實現方式。
(1)有多少種日志
錯誤日志:記錄出錯信息,也記錄一些警告信息或者正確的信息
慢查詢日志:設置一個閾值,將運行時間超過該值的所有SQL語句都記錄到慢查詢的日志文件中。
二進制日志:記錄對數據庫執行更改的所有操作
查詢日志:記錄所有對數據庫請求的信息,不論這些請求是否得到了正確的執行。
(2)日志的存放形式
(3)事務是如何通過日志來實現的,說得越深入越好。
隔離性: 通過 鎖 實現
原子性、一致性和持久性是通過 redo和undo來完成的。
5,問了mysql binlog的幾種日志錄入格式以及區別
(1)各種日志格式的涵義
(2)適用場景
(3)結合第一個問題,每一種日志格式在復制中的優劣。
6,問了下mysql數據庫cpu飆升到500%的話他怎么處理?
(1) 沒有經驗的,可以不問
(2)有經驗的,問他們的處理思路
7,sql優化。
(1)explain出來的各種item的意義
(2)profile的意義以及使用場景。
(3)explain中的索引問題。
8, 備份計劃,mysqldump以及xtranbackup的實現原理,
(1) 備份計劃
(2)備份恢復時間
(3)備份恢復失敗如何處理
9, 500臺db,在最快時間之內重啟。
10, 在當前的工作中,你碰到到的最大的mysql db問題是?
11, innodb的讀寫參數優化
(1)讀取參數,global buffer pool以及 local buffer
(2)寫入參數
(3)與IO相關的參數
(4)緩存參數以及緩存的適用場景
12 ,請簡潔地描述下MySQL中InnoDB支持的四種事務隔離級別名稱,以及逐級之間的區別?
SQL標準定義的四個隔離級別為:
read uncommited
read committed
repeatable read
serializable
Read Uncommitted(讀取未提交內容)
在該隔離級別,所有事務都可以看到其他未提交事務的執行結果。本隔離級別很少用于實際應用,因為它的性能也不比其他級別好多少。讀取未提交的數據,也被稱之為臟讀(Dirty Read)。
Read Committed(讀取提交內容)
這是大多數數據庫系統的默認隔離級別(但不是MySQL默認的)。它滿足了隔離的簡單定義:一個事務只能看見已經提交事務所做的改變。這種隔離級別也支持所謂的不可重復讀(Nonrepeatable Read),因為同一事務的其他實例在該實例處理其間可能會有新的commit,所以同一select可能返回不同結果。
Repeatable Read(可重讀)
這是MySQL的默認事務隔離級別,它確保同一事務的多個實例在并發讀取數據時,會看到同樣的數據行。不過理論上,這會導致另一個棘手的問題:幻讀(Phantom Read)。簡單的說,幻讀指當用戶讀取某一范圍的數據行時,另一個事務又在該范圍內插入了新行,當用戶再讀取該范圍的數據行時,會發現有新的“幻影” 行。InnoDB和Falcon存儲引擎通過多版本并發控制(MVCC,Multiversion Concurrency Control 間隙鎖)機制解決了該問題。注:其實多版本只是解決不可重復讀問題,而加上間隙鎖(也就是它這里所謂的并發控制)才解決了幻讀問題。
Serializable(可串行化)
這是最高的隔離級別,它通過強制事務排序,使之不可能相互沖突,從而解決幻讀問題。簡言之,它是在每個讀的數據行上加上共享鎖。在這個級別,可能導致大量的超時現象和鎖競爭。
對于不同的事務,采用不同的隔離級別分別有不同的結果。不同的隔離級別有不同的現象。主要有下面3種現在:
1、臟讀(dirty read):一個事務可以讀取另一個尚未提交事務的修改數據。
2、非重復讀(nonrepeatable read):在同一個事務中,同一個查詢在T1時間讀取某一行,在T2時間重新讀取這一行時候,這一行的數據已經發生修改,可能被更新了(update),也可能被刪除了()。
3、幻像讀(phantom read):在同一事務中,同一查詢多次進行時候,由于其他插入操作()的事務提交,導致每次返回不同的結果集。
不同的隔離級別有不同的現象,并有不同的鎖定/并發機制,隔離級別越高,數據庫的并發性就越差,4種事務隔離級別分別表現的現象如下表:
隔離級別臟讀非重復讀幻像讀read uncommitted允許允許允許read committed允許允許repeatable read
允許serializable
13,表中有大字段X(例如:text類型),且字段X不會經常更新,以讀為為主,請問
(1)您 是選擇拆成子表,還是繼續放一起?
拆成子表
(2)寫出您這樣選擇的理由?
1 提高檢索效率
14,MySQL中InnoDB引擎的行鎖是通過加在什么上完成(或稱實現)的?為什么是這樣子的
通過 行多版本控制
15 MyISAM 與innodb的區別
(1) 問5點不同
MyISAM Innodb
事物支持 : 不支持 支持
鎖的粒度: table Row
存儲容量: 沒有上限 64TB
哈希索引 : 不支持 支持
全文索引: 支持 不支持
外鍵: 不支持 支持
(2) 問各種不同mysql版本的2者的改進
(3)2者的索引的實現方式
[mysql dba面試題及答案]
【mysql dba面試題及答案】相關文章:
Oracle數據庫DBA經典面試題10-29
美工面試題及答案05-22
linux面試題及答案09-15
PHP面試題與答案07-22
android面試題及答案精選10-20
java面試題及答案10-03
經典java面試題及答案06-11
軟件測試面試題及答案08-17
Swift 面試題及其答案07-07
php常用面試題及答案08-27