2019.12 Yuefenの概要

    1. データベースのインデックスは、クラスタ化インデックスと非クラスタ化インデックスを含む、フォーカスを要約します。この要約は良くありません。

    これに関する共同インデックスとがあります。

    クラスタ化インデックス:インデックスのデータストレージとデータを見つけるインデックスを見つけ、作品を置きます

    非クラスタ化インデックス:メモリ(インデクシングデータによりアクセス)データにアクセスする必要がある場合、データが索引分割構造に格納されているが、key_bufferインデックスによってデータの対応する行、MyISAMテーブルを指し示すインデックス構造の葉ノードは、メモリにキャッシュされます直接検索インデックス、そしてインデックスは、キーバッファヒットしていない理由である、ディスクのインデックスを作成することにより、適切なデータを見つけ、低速の理由

    1. ロックについて

    各スレッドが独立してコピーを対応する他のスレッドに影響を与えることなく、そのコピーを変更することができますので、変数の各使用のためのThreadLocalのスレッドは、独立変数のコピーを提供します。

    ThreadLocalのは、古典的なシナリオでは、データベース接続とセッション管理で使用します。

    同期の原則の基本的な実装についての3話?

    monitorenter / monitorexit命令の組によって達成される同期、モニタオブジェクトは、基本的にはユニットを同期化されます。Java 6の前に、それが原因でユーザーモードカーネルモードを切り替える必要のため、内部のモニターオペレーティングシステムのミューテックスに完全に実装され、同期動作は未分化のヘビー級操作は、パフォーマンスが非常に低いです。Java 6のは、Javaは仮想マシンが行われたときしかし、大幅によく言われる三つの異なるモニターの実装を提供する、改善された、3つの異なるロック:ロックバイアス(偏りロック)、ロック・軽量大幅に性能を向上ヘビーロック、。

    1. 汚れは、非反復可能読み取り、ファントム読み取りを読み込みます。

    汚れを読む:コミットされていないデータを読み込みます

    非反復可能読み取り:トランザクションを複数回読むには、読み取り内容は同じではありません。修復するその他の事項。

    ファントムを読む:トランザクションが何回も読んで、データの量は同じではありません。別のトランザクションを追加または削除。

    1. 三つのパラダイムデータベース

    最初のパラダイム:1nFの列は、各列のアトミック性を保証する、分割することができません

    第二のパラダイム:2NF、主キー属性に完全に依存。すなわち、データベースまたは行の各インスタンスを一意に識別することができるされています

    第三のパラダイム:3NF、非プライマリプロパティの他の性質に依存しないが、主キー属性に直接依存しています。

    7つのデータの合計内部5. 165増分表は、最後の2つのデータを削除MySQLデータベースを再起動して、データの一部を挿入し、この時間idが少ないですか?

    テーブルタイプはMyISAMテーブルである場合、そのIDは8です。

    テーブル・タイプがInnoDBがある場合、それはIDが6です。

    InnoDBテーブルは、再起動は、IDの最大の損失になりますので、後に、メモリに記録されている最大のだけインクリメントプライマリキーIDになります。

    違い6.MyisamとInnoDBの

    図1は、MyISAMテーブルは、テーブルレベルのロックInnoDBは、行レベルのロックをサポートするサポート

    2、MyISAMテーブルは、InnoDBのサポートサービスを、トランザクションをサポートしていません。

    3、MyISAMテーブルは、InnoDBは外部キーをサポートする外部キーをサポートしていません。

    図4は、MyISAMテーブルのサポート、フルテキストインデックスは、InnoDBはサポートされていません

    図5は、MyISAMテーブル自体は、クエリの両方の添加は差がない場合は、行の合計数が速くMYISAMチェック、InnoDBが格納されていないテーブルの全データ列を記憶します

    クラスタ化インデックスと非クラスタ化インデックス

    クラスタ化インデックスは、主にInnoDBの使用されています

    非クラスタ化インデックスは、主にMyISAMテーブルを使用しています

    記録されたインデックステーブルエントリの物理的な順序と一致するインデックスを格納するためのテーブルデータ。クラスタ化インデックス、真のデータ線、追加の別個のデータページを格納する、すなわちリーフノードのために。物理的な順序が唯一の実際のデータがあるので、ほとんどは、テーブルの上にクラスタ化インデックスを作成することができます。

    非クラスタ化インデックス。かかわらず、インデックスの順序を保存するシーケンステーブルデータの。非クラスタ化インデックスのリーフノードは、インデックスフィールドの値と量がデータテーブルの行の行数と一致するデータ・ページ・データ・ラインへの論理ポインタを含みます。

    6. CHARとVARCHARがある違いは何ですか?

    CHAR(n)を:固定長型、あなたが「ABC」の三個の文字を入力して、このようなサブスクリプション(10)、として、スペースまたはcharの10バイトを占め、他の7つはNULLバイトです。

    チャットの利点:高い効率;欠点:スペース、アプリケーションシナリオ:MD5の値が使用チャーに非常に適しパスワード、固定長を記憶します。

    VARCHAR(N):変数の長さ、値は、その長さのバイト長を記録するために使用される各バイトの値と一緒に占める記憶されています。

    したがって、適切なスペースの考慮事項varcahrから、チャーは、効率のトレードオフの両方を使用することが適切であると考え。

    例えば:はvarchar(100)、それは、実際に2である場合、最大ストレージ100は、実際の収納スペースも2を占めているが、文字がないことを示します。(100)は、実際のオープンスペースチャーは、二つがあっても、それはスペースの無駄です、100です。

    1. 7. MySQLの行とテーブルロック?

    MyISAMテーブルは、デフォルトでテーブルロック、InnoDBの支持テーブルと行ロック、行ロックをサポートしています。

    テーブルレベルロック:小さなオーバーヘッド、速いロックは、デッドロックはありません。大きな粒子サイズ、ロック競合の可能性が最も高い、同時実行の最小量をロックします。

    行レベルのロッキング:大きなオーバーヘッドが、低速ロック、デッドロックが存在するであろう。ロックの努力、ロック競合の小さな確率、同時実行の最高度。

    分散ロックを実装する方法8. Redisの?

    占領が成功を続けることができたときに、分散ロックは、実際にシステム内部の「ピット」を占めているのRedis、他のプログラムは、「ピット」を占めている、失敗はあきらめるか、後でやり直してくださいすることができます。

    ピット一般的に使用さsetnxの会計処理(セットが存在していない場合)、コマンド、プログラムだけを占領し、ロック解除されているを使用してデルの完成を呼び出すことができます。

     

    ロック・タイムアウトの問題を超えたプログラムの実行が発生した場合、問題を解決することはできませんRedisの分散ロック・タイムアウトは、分散ロック・タイムアウトがあります。

    9.実装クラスのロードについての話?

    以下の5つのステップにクラスローダ:

    ロード:検索パスに応じた適切なクラスファイルとインポートを見つけます。

    チェック:ロードされたクラスファイルの正しさを確認してください。

    調製:クラス静的変数のメモリ空間を割り当てます。

    分析:VM基準シンボル定数プールは直接参照プロセスを置き換えます。基準シンボルマークとして理解されるべきで、直接メモリアドレスへの直接参照に、

    初期化:静的変数と静的コードブロックの実行初期化。

    10.一般的なJVMのチューニングパラメータは何がありますか?

    -Xms2g:初期化プッシュ2グラムサイズ。

    -Xmx2g:最大ヒープメモリは2グラムです。

    -XX:NewRatio = 4:若く、古い時代の設定されたメモリの割合は1:4。

    -XX:SurvivorRatio = 8:2と8の新世代エデンサバイバー比を設定する:2。

    -XX:+ UseParNewGC:指定ParNew +シリアル旧ガベージコレクタ組成;

    -XX:+ UseParallelOldGC:指定ParNew + ParNew旧ガベージコレクタ組成;

    -XX:+ UseConcMarkSweepGCを:指定CMS +シリアル旧ガベージコレクタ組成;

    -XX:+ PrintGC:GCオープン印刷情報。

    -XX:+ PrintGCDetails:プリントGCの詳細。

    11。違いBLOBとTEXT

    BLOBは、バイナリオブジェクトに格納されています。唯一の違いはあるとき、ブロブ、大文字と小文字を区別したクエリやソート、およびテキストは大文字と小文字を区別しません。

    12.テーブルインデックスの最大数を作成することができますか?

    任意の標準的な表には16の標準的な列のインデックスまで作成することができます。

    13.主キーのみ - 識別レコード、複製することができない、NOT NULL

    外部キーは - 外部キーテーブルが別のテーブルの主キーで、外部キーがnullの場合もあるが繰り返されてもよいです

     索引 - このフィールドの値が繰り返されていないが、NULL値を持つことができます

    14.Bツリー、Bツリー、B +木、二分木、赤黒木、および非クラスタ化インデックスクラスタ化インデックス。
    B-木とB-木は同じ、ちょうど別の名前の木です。

    Bツリー機能:

    B-treeは最大の子ノードのデータは、Bツリーの順となって、バランスの取れたマルチウェイ探索木です。m次のBツリーは、次の特性をもちます。

    ツリー全体に分散したキーワードの1「セット

    2「とノードのいずれかのキーワードが表示されますが表示されます。

    可能な非リーフノードの検索の3「末端

    4「全体でのバイナリ検索キーワードを行うには、検索要素の性能に相当します。

    5「自動レベル制御。

    同じレベル6「すべての子ノード。

    B +木と同じプロパティに加えB-木、ならびに以下の特性:

    1「すべてのリーフノードにチェーンポインタを増やします

    2「すべてのキーワードは、リーフノードに表示されます。

    バイナリツリー:

    1「すべての非リーフノードは、2人の子供にまで持って

    2「すべての各ノードは唯一つのキーワードを保存することができます。

    3「非リーフノードはあまり左右以上です。

    赤黒木:

    1「は、各ノードは、赤の代わりに黒であります

    2「黒ルート

    3「の各リーフノードは黒であります

    4各赤ノードの」子ノードが黒であります

    5「赤の接続が接続されている残っています

    6「自己均衡バイナリツリー。

    要約:

    バイナリツリー、唯一のキー各ノード店、ヒットに等しい、以下左ノードより取るには、ノードが行く権利よりも大きいです。

     Mキーワードに複数の検索ツリーは、各ノードが格納M / 2、非リーフノードは、子ノードのキーワード範囲へのポインタを格納し、全体片ツリー内のすべてのキーワードが表示され、:B(B-)ツリーそして、だけ、非リーフノードがヒットすることができ、一度表示されます。

           B +木:インデックスのリーフ・ノードとしてB-ツリーに基づいて、リストのポインタが、リーフノードを高めているリーフノード内のすべてのキーワードが表示され、非リーフノードとリーフノードへのB +ツリーは、常に前ヒット;



     

     

おすすめ

転載: www.cnblogs.com/yanghuiping/p/12004517.html