2013年5月7日火曜日

MySQLのインタビューの質問

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


良い受験者は、良好なDBAを行いません。
インタビュアーは、DBAの興味や読み物について尋ねるべきである。
彼らは知っていますかPlanet.mysql.comを ? 彼らは積極的な著者のブログの記事を知っていて、読んでいますか?
その場合、彼らは学習と便利な一日に来ることができる他の状況を認識しつつされるべきである。 ただ、自分の環境に焦点を当てていない。


これは、マルチパートのブログ記事の一部です。

MySQLの インタビュー 質問

あなたも質問を開始する前に、同様に候補者がMySQLの発音方法に注意を払う。
私はこれまでをもたらす理由は、MySQLでの献身と経験が表示されています。 それは別の方法でそれを発音することができているが、それが発音されている"私のESSクエのエルは"その後、彼らは歴史を知っているを示しています。


質問1:
何をするんACIDは放置?

応答は、次のいくつかを含める必要があります。

:原子性。
  • 自動コミットの設定。
  • COMMITステートメント。
  • ROLLBACKステートメント。

はC:一貫。
  • InnoDBは二重書き込みバッファ。
  • InnoDBのクラッシュ復旧。

I ::分離。
  • 自動コミットの設定。
  • 分離レベル文を設定します。
  • InnoDBはロック。

D:耐久性。
  • innodb_doublewriteによりオンオフInnoDBは二重書き込みバッファ、
  • コンフィギュレーション·オプションinnodb_flush_log_at_trx_commit。
  • コンフィギュレーション·オプションsync_binlog。
  • innodb_file_per_tableを設定オプション。
  • このようなディスクドライブ、SSD、又はRAIDアレイとして、記憶装置のバッファに書き込む。
質問2:
あなたはについての私に何を伝えることができ、MySQLのアーキテクチャ ?

応答は、次のいくつかを参照する必要があります:  

質問をフォローアップ:
彼らは、MySQLのクエリキャッシュについて何を言うことができますか?
あなたが見つかった情報で応答を検証することができますここで 。



キャッシュは、次の種類のクエリに使用されていません:


質問3:
あなたは私の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の - ログ·エラー=の/ var /ログイン/ mysqld.log - PIDファイル=の/ var / libに/ mysqlの/ kdlarson-pc.pid
  • rootとして接続します。
    • #のmysql - uをルート
  • 新しいパスワードをセットアップするには:
    • MySQLを使用する;
    • MySQLの>アップデートユーザ設定パスワード= PASSWORD( "NEW-ROOT-PASSWORD")ここで、ユーザー= 'ルート';
    • MySQLの>フラッシュ権限;
    • mysqlの> QUIT

質問5:



どのようにあなたは彼らが何であるかを知らない人に、MySQLのインデックスを定義することができますか?  

彼らは、インデックスの彼らの定義を説明しましょう。 ポイントは、過度に技術的であることが、ポイントと、それらの理由を説明することではありません。

電話帳を考えるまたはライブラリ内のインデックスカードを考えるとインデックスの一般的な例。
それらは迅速かつ論理的に何かを見つけるために使用される。 電話帳ではなく、姓の​​姓で皆を上場していた場合、それを見つけると更新をすることが難しくなるでしょう。

人々は、図書館で本を見つけるために図書館カードカタログを使用するために使用。 それは場所に関連する情報をに簡単だったので、彼らは、位置情報とインデックスカードの情報を保存ので、これは便利でした。


質問をフォローアップ:
それは、さまざまな種類のデータ全体にインデックスをたくさん持っている方が良いでしょうか?

応答は、次のいくつかを含めることができます:  

複数のインデックスは、より多くの仕事を意味するが、それはまた、より多くのインデックスが速くデータを検索するのより多くの方法を意味することを意味します 。 DBAは、関連するアプリケーションとデータのニーズごとにインデックスの必要量を決定する必要があります。

質問6:
MySQLクエリとは何です 
  と良好なクエリを何を作る?

それらは、クエリとは何か、どのようにクエリを記述することを好む説明を許可します。
これは、次のいくつかを含めることができます:
  • SQLクエリはそれ自体との少しのプログラムのようなものです。
  • 彼らは、レコードの選択を収集するために、データベース·サーバーに依頼、それらを並べた後、レコードの他のコレクションとそれらを集計クロス、スライスし、それらをサイコロ。
  • このすべては、MySQLは、一時テーブルを構築し、リソース集約的なソートを実行して、素敵な一口サイズのチャンクで出力を整理する必要があります。

質問7:
どのようなストレージエンジンは、彼らが使用している?

これには以下のいくつかを参照する可能性がある。 あなたがそれらについての詳細を読むことができますので、これらはmysql.comウェブサイトへのすべてのリンクであり、


ボーナスポイント、彼らは同様に、これらの話をすることができた場合

質問8:
何があなたは今まで、MySQLと解決しなければならなかった困難な問題となっているのですか?

それらが問題と同様のソリューションについて詳細に説明し、行くことができます。
  • なぜそれが問題だったのですか?
  • あなたはそれをどのように修正したのですか?
  • それは、収益依存緊急修正でしたか?
  • 問題が再表示、または、固定滞在しましたか?
質問9:

彼らは、MySQL、PerconaやMariaDB何を好むか?

彼らが話すと、彼らはなぜ好きなのかを説明することができます。 これは、彼らが値として大切にものを見ることができるようになります。 そのソースとオリジナルであるため、他の人が、MySQLを好む一方、オープンソースのツールを提供している場合ので、彼らはオープンソースのメッセージに捧げているので、いくつかはMariaDB好むかもしれない、他の人がPerconaを好むかもしれません。


質問10:

MySQLレプリケーションとの経験は何ですか?

彼らのさまざまな経験や複製のセットアップについて話をすることができます。
彼らの情報の一部は、次のように可能性があり、又はこれらが質問にフォローアップすることができます。

質問をフォローアップ:

どのようにしてマスター/スレーブを設定します:
  • それのテーブルがロックされている間に、プライマリ·データベースの完全なダンプ。
  • 当時のマスターのステータス、ログファイルと位置を捕捉( - マスターデータ[=#])
  • 新しいマシン上のデータのインポート
  • CHANGE MASTER TOを
  • SLAVEステータスを表示
  • Slave_IO_Runningは:はい
  • Slave_SQL_Running:はい
どのようにしてマスター/マスターレプリケーションをセットアップします:

マスターマスター·レプリケーションでは、つの追加のステップを除いて、マスター/スレーブのレプリケーションに似ています。
  • スレーブ表示MASTER状態に
  • プライマリーボックスに戻り、する変更MASTERを実行
  • | auto_increment_increment | 1 |
  • | auto_increment_offset | 1 |
スレーブにマスターを設定するコマンドは何です:
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-テーブルチェックサムが使用するための予防的なツールです
それはすべてあなたのテーブルのチェックサムを構築し、その後スレーブへのレプリケーションを通じてそれらのチェックサムを伝播できます。

半同期複製をインストールする方法
  • 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;
  • マスター> 'Rpl_semi_sync_master_clients' LIKE SHOWのSTATUS;
+ ------------------------------ + ------- +
|変数名|値|
+ ------------------------------ + ------- +
| 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と、モデルをトランザクションが特徴のコミット 、 ロールバック 、およびクラッシュ·リカバリーのユーザデータを保護する機能を -  マニュアル