インタビューMySQLでのいくつかの一般的な問題

1更新するために、どのように繰り返される場合は、データを挿入?

INSERT  INTO  テーブル(A、B、C)VALUES123ON DUPLICATE KEY UPDATEの C = C + 1

 

図2に示すように、インサート17枚のレコードは、レコード15、16、記事、削除する場合、主キーIDをインクリメントしたテーブル、
次にMySQLの再起動をし、その後レコードを挿入し、このレコードID 18または15?

1テーブルタイプはMyISAMテーブルの場合)、それは18 
MyISAMテーブル最大IDのMySQLの自動インクリメントの主キーを再起動し、データファイルに記録されている最大のIDの主キーをインクリメントするために失われることはありません2)の表は、タイプの場合InnoDBは、それは15 
のInnoDBテーブルだけでメモリに最大インクリメントの主キーIDを記録し、そのIDの最大損失の原因となるデータベースまたは表OPTIMIZE操作を再開します

 

3.長所と短所は何ですか[SELECT *]と書き込みの2種類の[すべてのフィールドを選択]?

前者辞書は必要としないデータ解析する
 2 結果出力順序を、同じ順序でテーブル列の元構造に指定されたフィールドを記載の順序を。
3 前者は変更する必要がある、変更を必要としない名前を変更した表のフィールド、
 4 。後者は、インデックスを最適化することができ、前者は最適化することはできません
 5元の高可読性よりも後者を
ので、照会し、後者を使用するようにしてください

 

テーブルは一フィールドVARCHAR(N)型、UTF8エンコーディングを有する場合4は、最大Nは数ですか?

各文字UTF8以来最大占める3 バイト。ラインの長さは、MySQLを超えないように定義され、65535 (テキストやBLOBが含まれていない)、Nの最大値が計算される:( 65535 - 1 - 2/ 3減算1つの理由は本当のことであり、
第二の記憶バイトから機会マイナス2 リストの長さで割った実際の文字の長さ(2つのバイトを有する256を超える長さ)、格納するため理由は3のでをUTF8の制限:各文字がに占める3バイト。

 

図5に示すように、MySQLのInnoDBエンジンの行ロックがどの(または実現)の上に追加することによって行われますか?

InnoDBの行ロックを達成するために、データ・ブロック内の対応するデータ線によってロックされているMySQLとオラクル、異なるロック、上のインデックス項目にインデックスすることによって達成されます。
この特徴的な手段を実現するためのInnoDB行ロック:のみがインデックス条件を介してデータを取得するために、唯一のInnoDBの行レベルのロック、そうでなければ、InnoDBのテーブルロックを使用します

 

6、InnoDBのでMySQLは、MyISAMテーブルのを区別しますか?

1。トランザクションサポート
のMyISAM:それはパフォーマンスを重視し、数倍速いのInnoDB型より行いますが、トランザクションサポートを提供していないクエリがアトミックであるたびに、。
InnoDBは:高度なデータベース機能を提供してい総務ように、トランザクション、外部キーをサポートしています。トランザクション(コミット)、トランザクションセーフロールバック(ロールバック)と(トランザクションセーフ(ACID準拠)のクラッシュ修復能力(クラッシュ復旧機能)との ) テーブルを入力します。
2。InnoDBは、行レベルのロック、およびサポートのMyISAMテーブルレベルのロックをサポートしています。
操作MyISAMテーブル内のユーザー、SELECT更新削除挿入自動的に未来を満たすために、テーブルをロックし、ロックしますテーブルにif文の挿入、同時の場合は、あなたは、テーブルの最後に新しいデータを挿入することができます。
図3 のInnoDBサポートMVCC、およびMyISAMテーブルはサポートされていません。(MVCC:マルチバージョン同時実行制御マルチバージョン同時実行制御)
。4 。InnoDBのサポート、外部キー、およびMyISAMテーブルでサポートされていない
5。主キー
のMyISAM:任意のインデックスと主キーが存在しないテーブルを許可しません、インデックスアドレスは、行に格納されています。
InnoDBは:いいえ非ヌル主キーまたは一意のインデックス場合は、自動的に生成される6 -byteメインキー(ユーザに見えない)、メインインデックスのデータの一部を、インデックスは、メインインデックスの追加の値が格納されます。
6 。InnoDBは、フルテキストインデックス、およびMyISAMのサポートをサポートしていません。
7ポータビリティ、バックアップと復元。
MyISAMテーブル:データをファイルとして保存され、それがプラットフォーム間でのデータ転送のために非常に便利になります。テーブルのバックアップとリカバリで別々に操作することができ
InnoDBは:フリーのプログラムデータファイルがバックアップビンログを、コピー、またはmysqldumpを、G比較的苦痛の数十のデータの量を使用することができる
8ストレージ構造を。
MyISAMテーブル:各MyISAMストレージディスク上に3つのファイルに。拡張を開始するテーブルの最初のファイル名の名前は、ファイルの種類を示します。.FRMファイルには、テーブルを記憶します。.MYD(MYDATA)という名前の拡張データファイル。拡張インデックスファイルには.MYI(MYIndex)です。
InnoDBは:すべてのテーブルが同じデータファイルに格納されているが(複数のファイル、または別の表スペースをすることができる)、のInnoDBテーブルのサイズは、オペレーティング・システム・ファイル、通常は2ギガバイトのサイズに制限されます。

 

7、MySQLのレプリケーションの原理とプロセス

MySQLの組み込みのレプリケーションは、大きな、高性能なアプリケーションを構築するための基礎です。複数のデータまでのMySQL機構配信システムは、この分布は、再び別のホストのMySQL(スレーブ)1つのホストのデータをコピーすることによって達成され、再実行します。
一つ以上の他のサーバがサーバからとして動作しながら、複製中のサーバは、プライマリサーバとして機能します。マスタインデックスサーバはバイナリログファイルが更新される書き込み、およびログ・サイクルを追跡するためのファイルを維持します。これらのログ・レコードが更新するように、サーバから送信することができます。
マスターサーバーからの接続は、それが最後に成功した更新の位置を通知すると、マスターサーバーがログに読み込みます。それ以来、サーバが起こってから更新を受信し、メインサーバをブロックし、新規更新の通知を待ちます。
これは、次の
更新バイナリログファイルを記録するメインサーバを。2 マスターサーバーからは、独自のリレーログ(リプレイへのバイナリコピーをログに記録するログで)。3 。中継サーバREDOログの時から、更新が独自のデータベースに適用されます。

 

8.簡単にどのような一般的に使用されるインデックスを記述してください?

1つの通常のインデックス:インデックスは、データベーステーブルのために作成された
 2 一意のインデックス:一般的な指標と同様に、それは別です:MySQLのデータベースのインデックス列の値は一意であるが、自由な値許可する必要があります
 3 主キーのインデックスを:それは特別です唯一のインデックスは、NULL値を許可していません。通常、同時に主キーのインデックスを作成するときにテーブルの構成
 4 複合インデックス:複合インデックスとして一緒にデータベーステーブル内の複数のフィールド

 

9は、MySQL 4トランザクション分離レベル

1読む コミット(コミットが内容読み出し)
分離レベルを、すべてのトランザクションは、他のコミットされていないトランザクションの結果を見ることができます。その性能は他のレベルよりもはるかに良いではありませんので、この分離レベルはほとんど、実際には使用されません。非コミット読み取りデータは、また、ダーティリード(ダーティ呼ば読みます)。
2読む コミットは(提出を読んで)
これは、ほとんどのデータベース・システムのデフォルトの分離レベル(MySQLのではなく、デフォルト)です。それは、分離の簡単な定義を満たす:トランザクションが唯一の変化は、企業が行う提出されている見ることができます。この分離レベルは、いわゆる非反復可能読み取り(非反復サポート読み取りを、)
この例では、同じトランザクションの他のインスタンスが中に新たな契約を持っている可能性があるため、
コミットので、同じ選択が異なる結果を返すことがあります。
3反復 読む(再読み込みすることができます)
これはMySQLのトランザクション分離レベルのデフォルト値は、同時の時点で同じトランザクションの複数のインスタンスがデータを読み込み、あなたは同じデータ行を参照するようになります。しかし、理論的には、それは別の厄介な問題につながる:マジック読書(ファントムリードを)。
簡単に言えば、ファントム読み取りは、ユーザーがデータ行の範囲を読み込む際にすることを意味し、他のトランザクションとユーザーがデータ行の範囲を再読み込みする場合、範囲内の新しい行を挿入、あなたは見つけるでしょう 」新がありますファントム「行。マルチバージョン同時実行制御(MVCC、マルチバージョン並行処理制御ギャップロック)機構を介してのInnoDBとファルコンストレージエンジンは、問題を解決します。
注意:実際には、マルチバージョンのみ非反復可能読み取りの問題の問題、プラスクリアランスロック(つまり、ここでは、同時実行制御と呼ばれている)我々はファントムの問題を解決することができる前にお読みください。
4シリアライズ(直列化可能)
これは最高の分離レベル、ファントムを読み取る問題を解決するために、互いに競合することを不可能にすることを強制することによって、トランザクションの順序です。要するに、それは、読み取られたデータの各行に対して共有ロックを追加することです。
このレベルでは、それがタイムアウトとロック競合の多くにつながる可能性があります。

 

10、データベース3つのパラダイム(クリシェ)

最初のパラダイム(1NF):.原子フィールドと、分割できません。(リレーショナル・データベース・システムを分割することができない、単一のプロパティは、全ての第1正規形のデータベーステーブルのフィールドにある)=>上のカラムの設計
 2 。第二のパラダイム(2NF)は最初のパラダイムの基礎(1NF)であります、セットアップそれは第1正規形(1NF)を満たさなければならない第2正規形(2NF)です。各インスタンスは、データベーステーブルを必要とするまたは行のみサブ領域でなければなりません。=>にライン設計
、典型的に一意の各インスタンスストレージを識別するために、テーブルに列を追加する必要があります。このユニークなプロパティは、主キー列または主キーと呼ばれています。
3 。第3正規(3NF)は、第2のパラダイム(2NF)を満たさなければなりません。簡潔に述べると、第三のパラダイム(3NF)は、既に他のテーブルに含まれていない非主キー情報を含むデータベーステーブルを必要とします。=>に設計テーブル
第三のパラダイムは、以下の特性を有するように:>> 1 。各列は一つの値だけを持つ>> 2。各行を区別することができます。>> 3 。各テーブルには、すでに他のテーブルに含まれるいかなる非プライマリキー情報が含まれていません

だから、覚えている行、列、テーブル、言葉できます

おすすめ

転載: www.cnblogs.com/roostinghawk/p/11067637.html