今天給大家分享一下關(guān)于MySQL的二十個(gè)經(jīng)典面試題,據(jù)說(shuō)能全部正確回答上來(lái)的大神月薪至少能上10k!
1、MySQL的復(fù)制原理以及流程
基本原理流程,3個(gè)線程以及之間的關(guān)聯(lián);
2、MySQL中myisam與innodb的區(qū)別,至少5點(diǎn)
(1)、問(wèn)5點(diǎn)不同;
(2)、innodb引擎的4大特性
(3)、2者selectcount(*)哪個(gè)更快,為什么
3、MySQL中varchar與char的區(qū)別以及varchar(50)中的50代表的涵義
(1)、varchar與char的區(qū)別
(2)、varchar(50)中50的涵義
(3)、int(20)中20的涵義
(4)、mysql為什么這么設(shè)計(jì)
4、問(wèn)了innodb的事務(wù)與日志的實(shí)現(xiàn)方式
(1)、有多少種日志;
(2)、事物的4種隔離級(jí)別
(3)、事務(wù)是如何通過(guò)日志來(lái)實(shí)現(xiàn)的,說(shuō)得越深入越好。
5、問(wèn)了MySQL binlog的幾種日志錄入格式以及區(qū)別
(1)、binlog的日志格式的種類和分別
(2)、適用場(chǎng)景;
(3)、結(jié)合個(gè)問(wèn)題,每一種日志格式在復(fù)制中的優(yōu)劣。
6、問(wèn)了下MySQL數(shù)據(jù)庫(kù)cpu飆升到500%的話他怎么處理?
(1)、沒(méi)有經(jīng)驗(yàn)的,可以不問(wèn);
(2)、有經(jīng)驗(yàn)的,問(wèn)他們的處理思路。
7、sql優(yōu)化
(1)、explain出來(lái)的各種item的意義;
(2)、profile的意義以及使用場(chǎng)景;
8、備份計(jì)劃,mysqldump以及xtranbackup的實(shí)現(xiàn)原理
(1)、備份計(jì)劃;
(2)、備份恢復(fù)時(shí)間;
(3)、xtrabackup實(shí)現(xiàn)原理
9、mysqldump中備份出來(lái)的sql,如果我想sql文件中,一行只有一個(gè)insert....value()的話,怎么辦?如果備份需要帶上master的復(fù)制點(diǎn)信息怎么辦?
10、500臺(tái)db,在快時(shí)間之內(nèi)重啟
11、innodb的讀寫(xiě)參數(shù)優(yōu)化
(1)、讀取參數(shù)
(2)、寫(xiě)入?yún)?shù);
(3)、與IO相關(guān)的參數(shù);
(4)、緩存參數(shù)以及緩存的適用場(chǎng)景。
12、你是如何監(jiān)控你們的數(shù)據(jù)庫(kù)的?你們的慢日志都是怎么查詢的?
13、你是否做過(guò)主從一致性校驗(yàn),如果有,怎么做的,如果沒(méi)有,你打算怎么做?
14、你們數(shù)據(jù)庫(kù)是否支持emoji表情,如果不支持,如何操作?
15、你是如何維護(hù)數(shù)據(jù)庫(kù)的數(shù)據(jù)字典的?
16、你們是否有開(kāi)發(fā)規(guī)范,如果有,如何執(zhí)行的
17、表中有大字段X(例如:text類型),且字段X不會(huì)經(jīng)常更新,以讀為為主,請(qǐng)問(wèn)
(1)、您是選擇拆成子表,還是繼續(xù)放一起;
(2)、寫(xiě)出您這樣選擇的理由。
18、MySQL中InnoDB引擎的行鎖是通過(guò)加在什么上完成(或稱實(shí)現(xiàn))的?為什么是這樣子的?
19、如何從mysqldump產(chǎn)生的全庫(kù)備份中只恢復(fù)某一個(gè)庫(kù)、某一張表?
開(kāi)放性問(wèn)題:據(jù)說(shuō)是騰訊的
一個(gè)6億的表a,一個(gè)3億的表b,通過(guò)外間tid關(guān)聯(lián),你如何快的查詢出滿足條件的第50000到第50200中的這200條數(shù)據(jù)記錄。