1、トランザクション
トランザクション:トランザクションは、ACID特性を満たすために、操作のセットです。
①アトミック:どちらかのトランザクションの実行にコミットやロールバックですべての操作
②は、一貫性:データの前と後に実行される一貫性の合計取引、以上200元が薄い空気から空中からもないことはあまり200ありません
③アイソレーション:トランザクションの動作が提出され、他のトランザクションのコメントに表示されていません
③永久:トランザクションがコミットされると、恒久的な変更データ
2、トランザクション分離レベル
①非コミット読み取り:他のトランザクションはまた、ダーティリードとして知られているコミットされていないデータを、読み取ることができます
②非反復可能読み取り:2の結果は同じではありません読み
③反復可能読み取り(MYSQLベースのデフォルト):トランザクションが記録された範囲を読み取るためにすると、この範囲内に挿入された別のトランザクションは、ファントム読み取りレコードが生成されます
③シリアルリード:トランザクションを強制的に逐次実行
3、ロック
読み書きロック
リードロック:また、同じ期間に、共有ロックとして知られている複数のユーザーが同時にユニフォームリソースを読み取ることができます
書き込みロック:ユーザーが読み取りまたは書き込みロックを取得し、他のユーザーをブロックの書き込みロックを取得します
で割ったロックの粒度
- テーブルレベルロック:小さなオーバーヘッド、速いロックは、デッドロックはありません。大きな粒子サイズ、ロック競合の可能性が最も高い、同時実行の最小量をロックします。
- 行レベルのロッキング:大きなオーバーヘッドが、低速ロック、デッドロックが存在するであろう。ロックの努力、ロック競合の小さな確率、同時実行の最高度。
楽観と悲観的ロックロック
オプティミスティック・ロック:実行は問題がハンドラの呼び出しを監視の実行後に発生した場合、整合性の問題が発生しないと仮定
ペシミスティック・ロック:ロックを回避しなければなりません実行は、整合性の問題になると仮定。
衝突の頻度が低い楽観的ロックを選択しなければならない場合、悲観的ロック高い周波数が選択されます。
図4に示すように、クラスタ化インデックスと非クラスタ化インデックス
クラスタ化インデックスは:リーフ・ノード・データ・レコードです。
非クラスタ化インデックス:リーフノードレコードは、データのアドレスです。
主キークラスタ化インデックスを効率的に検索によると、二回検索するセカンダリインデックスで検索
図5に示すように、ハッシュインデックスとB +ツリーインデックス
B +:データの順序付け、範囲のための外観
ハッシュ:適した同等のクエリ、データ障害
ハッシュインデックスを確立するためにB +ツリー頻繁にアクセスされるデータのためのInnoDBストレージエンジン
MyISAMのインデックスを持つ6差、INNODB
①InNoDBプライマリインデックスファイルとデータファイルを分離同じ、MyISAMテーブルインデックスおよびデータファイルであります
②InNoDB二主キー索引のリーフ・ノードレコード、MyISAMのインデックス・リーフ・ノードに記録されたデータのアドレス
7、長所と短所のインデックス
利点は、インデックスがクエリの速度を向上させることができるということです
インデックス挿入操作の欠点は、インデックス更新を再構築します
8、SQLの最適化
インデックス、分割大規模なクエリ分解大リンク、戻って必要なデータのみを使用してみてください。
9、左端の費用収益対応の原則
左端のマッチング原則は、関節指数のため、関節指数は多値インデックス、(B)である、bはインデックスを使用できない条件範囲の値であれば、Bのソートには、ソートの最初として理解することができ、A Bは、インデックスの特定の値を利用することが可能です。
10、3つのパラダイム
1nFの プロパティを分離することはできません
2NF非プライマリプロパティには、コードに完全に依存しています
非プライマリプロパティ依存3NFを送信
11、ネクタイ
①連結接続も同等INNER JOINが呼ばれ
②接続LEFT / RIGHT OUTERはNULLを記録しないのではなく、無行に関連することを含むJOIN
③特別な結合NATURAL当量カプラー削除重複カラム
④直積が参加し、それは一般的な意味を欠いありません
12、リレーショナルおよび非リレーショナルデータベース
リレーショナル
2次元テーブルの構造を理解しやすいです
操作しやすいSQLのサポート
サポートサービスの費用を支払うためには貧しい読み取りと書き込みのパフォーマンスです
非リレーショナル
分散キー値ペアのストレージ構造
SQLをサポートしていません。
グッド読み取りおよび書き込みパフォーマンス
13、マスターコピーから
プライマリ・データベースとセカンダリデータベースを使用して、ログ・レコードに、プライマリ・データベース操作は、データベースから同一の動作を行う、データベースのバックアップからのプライマリ・データベースの問題は、利用されてもよいです。
ロック競合を削減するために、別の読み取りと書き込み、プライマリ・データベースの書き込み操作、データベースからの読み出し動作は、masterデータベース内の圧力を下げます。
14、データベース接続プールの役割
①資源の再利用、回避接続リリースを作成頻繁に
初期化するために準備②応答時間の短縮、
③統一された管理リンク
15、チャー与VARCHAR
CHAR(n)を:固定長型、スペースや文字の10バイトを占めますが、「ABC」の三個の文字を入力して定義(10)、などは、他の7つはNULLバイトです。
chatr利点:高い効率;欠点:スペース、アプリケーションシナリオ:MD5の値が使用チャーに非常に適しパスワード、固定長を記憶します。
VARCHAR(N):変数の長さ、値は、その長さのバイト長を記録するために使用される各バイトの値と一緒に占める記憶されています。
したがって、適切なスペースの考慮事項varcahrから、チャーは、効率のトレードオフの両方を使用することが適切であると考え。
16、との差INNODBのMyISAMエンジン
①事項:のInnoDBサポート取引、MyISAMテーブルは、トランザクションをサポートしていません。
②ロック機構:INNODB行レベルロック、MyISAMテーブルは、テーブルレベルロックであります
③操作:速いのMyISAMクエリ操作(InnoDBは多くのものを維持するために)、InnoDBの挿入、削除速く
④外部キー:InnoDBは外部キーをサポート
⑤Count(*):MyISAMテーブルは直接保存行を読み取ります
17、デッドロック
(1) 4つの要件デッドロック
独占:時間をかけて、排他的に資源配分のプロセス、およびリソースは、プロセスによってのみを使用することができます
つかむない:リソースのプロセス所持が先取りされていません
所持して待機:プロセスは、少なくとも一つのリソースを占有し、他のプロセスによって占有されるリソースを待っています
サイクルを待って:複数のリソースを各リング形成待機
(2)デッドロックモード処理
デッドロック防止
条件をつかむない破壊:リソース要求が満たされていない、それはリソースの解放を占有している、プロセスがリソースをつかむことはできません占拠しています
所持ウェイト: 1回のいずれかの完全に、またはしないように、十分なリソースを与えます
円形待ち:リソースの順序付けのために、要求が厳しく注文要求を増加しなければなりません
Bの回避デッドロック
(銀行家のアルゴリズム)危険な状態にあるシステムをチェック
デッドロックを検出cは
デッドロックするかどうかを決定するためのシステム
デッドロックを持ち上げdは
リソースをつかめ:プロセスのデッドロックに割り当てられ、他のプロセスからの十分なリソースをつかみます
プロセスを終了: 1つ以上のプロセスのデッドロックの撤退、破壊待機チェーンのサイクル
図18に示すように、水平方向および垂直方向のサブテーブルのサブテーブル
サブテーブルのレベル:あまりにも多くのレコードを、私たちは支払う必要があるが、テーブルに分けられる、ハッシュは、新しいテーブル名を構成するMODULO。
垂直表:長すぎるテーブルの縦の列分割の程度との間の密接な関係に応じて記録。
ファントムリードを解決するために19、マルチバージョン同時実行制御
各トランザクションのバージョン番号を開始+1
わずかな取引の現在のバージョン番号よりも、データの行を見つけるために、または現在のバージョン番号よりも大きなロゴを削除します。SELECT
INSERT:現在のバージョン番号を維持する新しいレコードを挿入します
DELETE:各行はキャンセルマークとして、現在のバージョンを保存するために削除されます
UPDATE:削除されたとして、元の行を識別するために、現在のバージョン番号を維持しながら、現在のバージョン番号を維持する新しいレコードを挿入します
MySQLのバージョン番号を確認する方法20、
SELECT VERSION()。
21、データテーブル7は、最後の2を削除します。
メモリに記録された最大インクリメントの主キーのInnoDB
データファイル内のMyISAM最大インクリメントの主キーレコード
インデックス必要があるかどうかを確認するために、どのように22、
使用して、SQLクエリの実行を表示する方法について説明します
そこに意味23. MySQLのトラブルシューティング?
ビューのSQLクエリの実行を使用する方法について説明
スロークエリログをオンにし、SQLを参照してください
推奨ブログ
① 約MySQLのB +ツリーインデックス、クラスタ化インデックスとの関係を、非クラスタ化インデックス、InnoDBは、MyISAMの解析