ホームページ  >  記事  >  データベース  >  mysqlデータベースのストレージエンジンの詳細説明

mysqlデータベースのストレージエンジンの詳細説明

韦小宝
韦小宝オリジナル
2018-03-14 10:27:081971ブラウズ

この記事では mysql データベース のストレージ エンジンについて説明します。そのため、mysql データベースのストレージ エンジンや私たちのエンジンについてあまり知らない学生は、mysql データベースのストレージ エンジンに関するこの記事を参照してください。

最適化構造の紹介:

タイプ 意味
ストレージレイヤー ストレージエンジン、フィールドタイプの選択、パラダイムデザイン
デザインレイヤー インデックス、キャッシュ、パーティション (サブテーブル)
アーキテクチャレイヤー 複数のmysqlサーバー設定、読み書き分離(マスター/スレーブモード)
sqlステートメントレイヤー 複数のSQLステートメントで目的を達成できる場合は、高パフォーマンスを選択してくださいそして高速 SQL ステートメント

ストレージ エンジン

ストレージ エンジン: 私たちが使用するデータは、特定のテクノロジーを通じてデータベースに保存され、データベース データはファイルの形式でハードディスクに保存されます。複数のテクノロジーがあり、それぞれのテクノロジーには独自のパフォーマンスと機能があります。データを保存するためのテクノロジーと機能の組み合わせは、「ストレージ エンジン」と呼ばれます。

  • mysql で頻繁に使用されるストレージ エンジン: MyisamInnodb など。

  • mysqlデータベースのストレージエンジンの詳細説明

    データベース データはさまざまなストレージ エンジンに保存され、すべての機能は現在のストレージ エンジンに関連しています。 プロジェクトのニーズと特性に応じて、さまざまなストレージ エンジンを選択する必要があります。

  • mysql でサポートされているすべてのストレージ エンジンを表示します:
    mysqlデータベースのストレージエンジンの詳細説明

innodb

データベース内の各データ テーブルのデータ設計情報の 3 つの側面: テーブル構造、データ、インデックス

  • 技術的特徴: サポートトランザクション、行レベルのロック、外部キー

mysqlデータベースのストレージエンジンの詳細説明

テーブル構造、データ、インデックスの物理ストレージ

  • innodb データテーブルを作成します:
    mysqlデータベースのストレージエンジンの詳細説明

  • テーブル構造ファイル:

このタイプのデータとインデックスの物理ファイルの場所: mysqlデータベースのストレージエンジンの詳細説明

すべての innodb テーブル データとインデックス情報は、次の ibdata1 ファイルに保存されます
innodb タイプのテーブル ストレージスペース:

mysqlデータベースのストレージエンジンの詳細説明

デフォルトでは、各 innodb テーブルのデータとインデックスに対して個別のファイルストレージは作成されません

mysqlデータベースのストレージエンジンの詳細説明 各 innodb テーブルが一意のデータとインデックスを持つように

変数
    を設定しますファイル:

mysqlデータベースのストレージエンジンの詳細説明 order2 データテーブルを再作成します:

mysqlデータベースのストレージエンジンの詳細説明この時点で、order2 データテーブルには個別のデータとインデックスストレージファイルがあります:

mysqlデータベースのストレージエンジンの詳細説明後でinnodb_file_per_tableの設定状況がどのように変化しても、order2のデータとインデックスは独立した格納場所を持ちます

  • データの格納順序


innodbテーブルのデータの格納は、書き込まれた各データを主キーの順序。

この機能は、このタイプのテーブルの書き込み操作が遅いことを決定します。

mysqlデータベースのストレージエンジンの詳細説明トランザクション、外部キー

このタイプのデータテーブルはトランザクションと外部キーをサポートします

トランザクション: http://blog.csdn.net/change_any_time/article/details/79488020

  • 外部キー: 2 つのデータテーブル A とテーブル B、およびテーブル B の主キーはテーブル A の通常のフィールドです。テーブル A で見ると、この通常のフィールドはテーブルの「外部キー」です。外部キーの使用には「制約」があります。

    制約: 上記 2 つのテーブルの場合、テーブル B のデータを最初に書き込む必要があり、次にテーブル A のデータとテーブル A の外部キー値はテーブル B の主キー ID 値から取得する必要があり、その範囲を超えることはできません。 。


「外部キー」は制約があるため、実際のプロジェクトではほとんど使用されません。

  • 同時実行性

  • このタイプのテーブルの同時実行性は非常に高く、複数の人が同時にデータテーブルを操作する際に、データ内容が不用意に変更されることを防ぐために、情報は「ロックされました」
このタイプのロック レベルは行ロックです。操作されている現在のレコードのみがロックされます。

Myisam

構造、データ、インデックスは独立して保存されます。このタイプのデータ テーブルには、テーブル構造、データ、インデックス用の独立したストレージ ファイルがあります。各myisamデータテーブル構造、データ、インデックスは独立したストレージファイルを持っています


  • mysqlデータベースのストレージエンジンの詳細説明

  • テーブルファイルタイプ


    意味mysqlデータベースのストレージエンジンの詳細説明

*.frm* .MYDテーブルデータファイルテーブルインデックスファイル

機能: 独立したストレージ ファイルを個別にバックアップおよび復元できます。

データの格納順序

  • myisamテーブルのデータの格納は、書き込まれた各データを自然な順序で並べることです。
    mysqlデータベースのストレージエンジンの詳細説明

    この機能は、このタイプのテーブルの書き込み操作が高速であることを決定します。

同時実行性

この機能は、このタイプのテーブルの書き込み操作が高速であることを決定します。

圧縮メカニズム

データテーブルに大量のデータが含まれている場合、ストレージスペースを節約するためにテーブルを圧縮する必要があります。

  • 現在のデータテーブルのデータをコピーします:
    mysqlデータベースのストレージエンジンの詳細説明

  • 継続的にコピーすると、order3データテーブルのデータが200万を超えます:
    mysqlデータベースのストレージエンジンの詳細説明

  • 200万を保存する対応する物理ファイル情報サイズのサイズは40メガバイトを超えています。ARDER3データのデータの圧縮テーブル
    mysqlデータベースのストレージエンジンの詳細説明

compressionツール:myisampack.exeテーブル名


  • rebuildインデックス:myisamchk。 exe -rq テーブル名
    mysqlデータベースのストレージエンジンの詳細説明

  • 解凍ツール: myisamchk.exe –unpack テーブル名
    mysqlデータベースのストレージエンジンの詳細説明

  • order3 テーブル情報が領域の 60% 圧縮されます:
    mysqlデータベースのストレージエンジンの詳細説明

  • order3 データテーブルが圧縮されます。しかしインデックスは消えています:
    mysqlデータベースのストレージエンジンの詳細説明

  • インデックスを再構築します:
    mysqlデータベースのストレージエンジンの詳細説明

  • インデックスは実際に再構築されます:
    mysqlデータベースのストレージエンジンの詳細説明

  • データテーブルを更新します: フラッシュテーブル テーブル名
    mysqlデータベースのストレージエンジンの詳細説明

  • 発生: 圧縮されたデータテーブルは読み取り専用です テーブル、情報を書き込むことはできません:
    mysqlデータベースのストレージエンジンの詳細説明

  • 圧縮データテーブルには特性があります: 頻繁に書き込むことはできませんが、固定内容のデータテーブルは圧縮できます。や地域情報など)
    データを書き込む必要がある場合: データ テーブルを解凍し、データを書き込んでから圧縮します mysqlデータベースのストレージエンジンの詳細説明

データを書き込めるように order3 データ テーブルを解凍します: (解凍とインデックスの自動的な再構築を同時に行います)

  • データ解凍が完了しました:
    mysqlデータベースのストレージエンジンの詳細説明

  • フラッシュ操作を実行し、解凍されたデータを更新します:
    ; この操作では、order3.MYD.00996D46.deleted の圧縮バックアップ ファイルも削除されますmysqlデータベースのストレージエンジンの詳細説明

  • flush table  表名 order3 に許可します。現時点では書き込みを続けます データ:
    mysqlデータベースのストレージエンジンの詳細説明

  • innodb ストレージ エンジン: 変更と削除に適しています
    Myisam ストレージ エンジン: クエリと書き込みに適していますmysqlデータベースのストレージエンジンの詳細説明

  • アーカイブ

innodb ストレージ エンジン: 変更と削除に適しています
Myisam ストレージ エンジン:

memory

メモリ ストレージ エンジンのクエリと書き込みに適しており、動作速度が非常に速く、サーバーの電源がオフになると、ストレージ エンジンへのデータが失われます。すぐに。

ストレージ エンジンの選択

Myisam と innodb

  1. ほとんどの場合、Web サイトには多くの「読み取りと書き込み」操作があるため、Myisam タイプを選択するのが適切です (例: dedecms、phpcms コンテンツ管理システム) (ニュース Web サイト、ディスカス フォーラム)

  2. ビジネス ロジックに特定の要件がある Web サイト (オフィス Web サイト、ショッピング モール) は、innodb を選択するのに適しています (Mysql5.5 のデフォルトのストレージ エンジンは innodb)



テーブル構造ファイル
*.MYI

以上がmysqlデータベースのストレージエンジンの詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。