2013年5月6日星期一

MySQL的面試問題

Original Post: http://anothermysqldba.blogspot.com/2013/05/mysql-interview-questions.html



一個很好的考生不會使一個很好的DBA。
面試官應該問有關的DBA的利益和閱讀材料。
他們知道Planet.mysql.com嗎? 他們知不知道和閱讀活動的作者的博客文章?
如果是這樣,那麼他們應該學習和了解的其他情況下,可以派上用場的一天。 不只是專注於自己的環境。


這是一個多部分的博客文章的一部分。

MySQL的 面試 問題

之前,你甚至開始問問題要注意如何以及候選宣告MySQL的。
我之所以提起這件事時,它會顯示與MySQL的獻身精神和經驗。 它允許發音以不同的方式,但它的發音是“我的ESS闕埃爾”,然後顯示他們知道歷史。


問題1:
站在什麼?

響應應該包括以下一些:

答:原子性。
  • 自動提交設置。
  • COMMIT語句。
  • ROLLBACK語句。

C:一致性。
  • InnoDB的雙寫緩衝。
  • InnoDB的崩潰恢復。

我::隔離。
  • 自動提交設置。
  • SET隔離級別聲明。
  • InnoDB的鎖定。

D:耐久性。
  • InnoDB的雙寫緩衝區,開啟和關閉由innodb_doublewrite
  • 配置選項的innodb_flush_log_at_trx_commit。
  • 配置選項sync_binlog。
  • 配置選項innodb_file_per_table的。
  • 在存儲設備中,如磁盤驅動器,固態硬盤,或RAID陣列的寫緩衝器。
問題2:
關於MySQL的架構,你能告訴我什麼?

反應應該參考以下的一些:  
你能告訴我什麼MySQL和磁盤I / O?

讓他們解釋他們的RAID級別的喜好和為什麼。
其他閱讀你可以在這裡找到。


問題4:
參與接管一個MySQL服務器時,你沒有任何憑據的步驟是什麼?
反應應該是類似以下的一些:  
  • 停止服務:#/ etc / init.d下/ mysql的停止
  • 重新啟動跳過盛大:#mysqld_safe的... - 跳過發放表
    • 的/ usr / sbin目錄/ mysqld的 - BASEDIR = / USR - DATADIR =的/ var / lib中/ MySQL的 - 插件目錄中= / usr/lib64/mysql/plugin - 用戶= mysql的 - 日誌錯誤= /無功/登錄/ mysqld.log - PID文件的/ var / lib中/ MySQL / kdlarson的pc.pid
  • 根連接:
    • #mysql-U的根
  • 要設置一個新的密碼:
    • 使用MySQL;
    • MYSQL>更新用戶設置的密碼= PASSWORD(“NEW-ROOT密碼”),其中User ='根';
    • 的mysql> flush privileges的;
    • MYSQL>退出

問題5:



你怎麼能定義MySQL索引的人誰不知道他們是什麼?  

讓他們解釋自己定義的索引。 這一點,是不是要過於技術性的,但說明的一點理由讓他們。

一個常見的例子指數想到的電話簿或想在圖書館的索引卡。
它們被用來迅速找到和邏輯。 如果電話簿大家列出姓,而不是姓氏,這將是很難找到並進行更新。

人們使用圖書館的卡片目錄在圖書館找書。 這是有用的,因為它們存儲在索引卡片上的信息與位置信息,所以很容易位置的相關信息。


跟進問題:
它是更好的指標有很多,在不同類型的數據?

響應可包括以下的一些:  

更多的索引,意味著更多的工作,但是這也意味著更多的索引快速查找數據意味著更多的方法。一個DBA需要按照相關的應用程序和數據的需求來確定所需金額的索引。

問題6:
什麼是MySQL查詢 
  是什麼讓一個很好的查詢?

允許他們解釋查詢是什麼,以及他們如何喜歡編寫一個查詢。
它可以包括下面的一些:
  • SQL查詢都像在和自己的小程序。
  • 他們請求數據庫服務器的記錄,收集選擇,交叉製表他們與其他收藏品的記錄,然後對它們進行排序,和切片和切塊他們。
  • 所有這一切都需要MySQL來建立臨時表,執行資源密集型各種各樣和組織輸出漂亮的一口大小的塊。

問題7:
他們使用什麼存儲引擎?

他們很可能會引用以下的一些。 這些都是mysql.com網站的鏈接,所以你可以閱讀更多關於他們,




獎勵積分,如果他們可以談論這些

問題8:
什麼是最困難的問題,你是否曾經不得不解決與MySQL?

允許他們解釋細講的問題以及解決方案。
  • 為什麼是個問題嗎?
  • 你是怎麼解決這個問題?
  • 收入依賴緊急修復?
  • 沒問題重新出現或保持固定的呢?
問題9:

他們喜歡什麼MySQL和Percona的或MariaDB的?

允許他們說話,並解釋他們喜歡什麼,為什麼。 這將讓你看到他們珍視作為值。 有些人可能會喜歡MariaDB的,因為他們都致力於開源的消息,其他人可能更喜歡Percona的,因為如果提供的開源工具,而另一些喜歡的MySQL,因為這是源和原始。


問題10:

與MySQL複製他們的經驗是什麼?

讓他們談談他們不同的經驗和複製的設置。
他們的一些信息可能是像下面這些可以跟進問題。

後續問題:

你會如何設置主站/從站:
  • 主數據庫的轉儲,而它的表被鎖定。
  • 捕捉主狀態,日誌文件和當時的地位( - 主數據[=#])
  • 新機的進口數據
  • CHANGE MASTER TO
  • SHOW SLAVE STATUS
  • Slave_IO_Running:是
  • Slave_SQL_Running:是
你會如何設置主/主複製:

主 - 主複製是主/從複製類似,除了一個額外的步驟。
  • 在從屬SHOW MASTER STATUS
  • 返回到主箱和運行CHANGE MASTER TO
  • | | 1 | auto_increment_increment
  • | | 1 | auto_increment_offset
什麼是設置主從機的命令:
CHANGE MASTER TO
- > MASTER_HOST ='master_host_name
- > MASTER_USER ='replication_user_name的,
- > MASTER_PASSWORD ='replication_password的,
- > MASTER_LOG_FILE ='recorded_log_file_name的,
- > MASTER_LOG_POS = recorded_log_position;


一個複製的完整性檢查工具,可以幫助你知道嗎?
Percona的PT表校驗和是預防性的工具來使用
它可以生成所有表的校驗和,然後傳播這些校驗通過複製的奴隸。

如何安裝半同步複製
  • INSTALL PLUGIN rpl_semi_sync_master SONAME semisync_master.so;
  • 主> SET GLOBAL rpl_semi_sync_master_enabled =;
  • 奴隸> SET GLOBAL rpl_semi_sync_slave_enabled =的;
  • 奴隸> STOP SLAVE IO_THREAD的START SLAVE IO_THREAD;
  • 主> SHOW STATUS LIKE'Rpl_semi_sync_master_clients';
+ ------------------------------ + ------- +
| VARIABLE_NAME |價值|
+ ------------------------------ + ------- +
| Rpl_semi_sync_master_clients | 1 |
+ ------------------------------ + ------- +

你怎麼能阻止所有從服務器上複製在同一個時間點?

這將顯示,如果他們使用的工具或者破解方法。
通常情況下,複製發生錯誤時停止奴隸,所以,如果他們強迫被複製的錯誤,它會停止所有的在同一個時間點,“老派”的法回採奴隸的奴隸。



問題11:
還有什麼,他們認為自己是一個系統管理員或開發人員?

讓他們談談他們的經驗,以及它如何塑造自己的職業生涯。
歷史上的MySQL DBA創建了他們的工作經驗。 一些專注於系統管理,而有些則是Web開發人員,有時他們是上述所有。 無論哪種方式,他們現在有一個重點MySQL數據庫,你可能會對你的優勢能夠利用這一經驗。 


問題12:
MySQL的5.1和5.5之間的主要區別是什麼?
  • InnoDB的就變成默認的存儲引擎
  • 半同步Replicatio的
  • 提高恢復性能
  • InnoDB的性能模式統計
  • 多個緩衝池實例
  • 更多分區選項
  如果你不知道答案的這些功能,然後在這裡審查。


問題13:
MyISAM和InnoDB的主要區別是什麼?
  InnoDB的遵循ACID模型, 交易提交 , 回滾 , 崩潰恢復功能,保護用戶數據 - 手動