序文 Oracle や SQL Server などのデータベースには、ストレージ エンジンが 1 つだけあり、すべてのデータ ストレージ管理メカニズムは同じです。 MySQL データベースはさまざまなストレージ エンジンを提供します。ユーザーは、さまざまな要件に応じてデータ テーブルに異なるストレージ エンジンを選択したり、ニーズに応じて独自のストレージ エンジンを作成したりできます。 MySQLの主なストレージエンジンの違い MySQL のデフォルトのストレージ エンジンは MyISAM です。他によく使用されるものとしては、InnoDB、MERGE、MEMORY (HEAP) などがあります。 いくつかの主要なストレージエンジン MyISAM は非トランザクション テーブルを管理し、高速なストレージと取得、および全文検索機能を提供します。 MyISAM は MySQL のデフォルトのストレージ エンジンです。 create で新しいテーブルを作成するときに、新しいテーブルのストレージ エンジンが指定されていない場合は、デフォルトで MyISAM が使用されます。各 MyISAM はディスク上の 3 つのファイルに保存されます。ファイル名はテーブル名と同じで、拡張子は .frm (テーブル定義を保存)、.MYD (MYData、データを保存)、.MYI (MYIndex、インデックスを保存) になります。データ ファイルとインデックス ファイルを異なるディレクトリに配置することで、IO を均等に分散し、速度を向上できます。 InnoDB ストレージ エンジンはトランザクション処理アプリケーションに使用され、コミット、ロールバック、クラッシュ回復機能によるトランザクションの安全性を提供する ACID トランザクション サポートなどの多くの機能を備えています。ただし、MyISAM ストレージ エンジンと比較すると、InnoDB は書き込み効率が低く、データとインデックスを保持するためにより多くのディスク領域を占有します。 メモリはすべてのデータをメモリ内に保存し、一時テーブルで使用して、参照やその他の同様のデータの迅速な検索が必要な環境で非常に高速なアクセスを提供できます。メモリはハッシュインデックスを使用するため、データアクセス速度が非常に高速です。 マージを使用すると、MySQL DBA または開発者は、同等の MyISAM テーブルを論理的にグループ化し、1 つのオブジェクトとして参照できます。データ ウェアハウスなどの VLDB 環境に非常に適しています。 さまざまなストレージエンジンの水平比較
ストレージエンジン操作の表示と構成 1. show engines; コマンドを使用して、現在のデータベースでサポートされているストレージ エンジンを表示します。 2. テーブル定義構造やその他の情報を表示するには、次のコマンドを使用します。 Desc[ribe] tablename; //データテーブルの構造を表示します。Show create table tablename; //テーブル作成時に指定したENGINEを表示するためのテーブル作成ステートメントを表示します。 show table status like 'tablename'\G はテーブルの現在のステータス値を表示します 3. テーブルのストレージエンジンを設定または変更する データベース テーブルを作成するときにストレージ エンジンを設定するための基本的な構文は次のとおりです。 テーブルtableName(を作成します columnName (列名1) type (データ型) attri (属性設定)、 columnName (列名2) type (データ型) attri (属性設定)、 ……..) エンジン = エンジン名 ストレージエンジンを変更するには、次のコマンドを使用します。 テーブル tableName エンジン =engineName を変更します サーバー全体またはソリューション全体で同じストレージ エンジンを使用する必要はありません。ソリューション内の各テーブルに異なるストレージ エンジンを使用できます。 InnoDB ストレージ構造 InnoDB はページ ストレージ構造を使用します。以下は InnoDB のテーブル スペース構造図です。 ページの保存形式は次の図に示されています。 ページのストレージは次の部分で構成されます。
ページ ヘッダー、最大/最小仮想レコード、およびページ フッターはすべて、ページ内で固定された保存場所を持ちます。 InnoDB インデックス構造 InnoDB はインデックスを保存するために B+Tree を使用します。 Innodb テーブルには複数のインデックスが含まれる場合があり、各インデックスは B+ ツリーを使用して格納されます。インデックスには、クラスター化インデックスとセカンダリ インデックスが含まれます。クラスター化インデックスは、テーブルの主キーをインデックス キーとして使用し、テーブルのすべてのフィールドを含みます。セカンダリ インデックスには、インデックス キーとクラスター化インデックス キー (プライマリ キー) の内容のみが含まれ、他のフィールドは含まれません。各インデックスは B+ ツリーです。各 B+ ツリーは多数のページで構成され、各ページのサイズは通常 16K です。 B+ ツリーの組織構造から、B ツリーのページは次のように分割できます。 リーフ ノード: B ツリーのレベル 0 にあるページで、記録されたすべてのコンテンツが格納されます。 典型的な B+ ツリー構造: 上の図からわかるように、同じレベルのページは二重リンクリストによって接続されています。 一般的に言えば、B+ ツリーの左端のリーフ ノードから始めて右にスキャンすると、小さいものから大きいものまで B+ ツリーのすべてのデータを取得できます。したがって、リーフノードには次の特性があります。 ページ内のデータはインデックス キーによってソートされます。 ページ内の任意のレコードのインデックス キー値は、その左側の兄弟ページ内の任意のレコードの値より小さくありません。 要約する 上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM を応援していただきありがとうございます。 以下もご興味があるかもしれません:
|
<<: VMware12 で Ubuntu19.04 デスクトップ版をインストールする (インストール チュートリアル)
>>: Vue ElementUI は非同期読み込みツリーを実装します
ページをナビゲートする2つの方法宣言型ナビゲーション: リンクをクリックしてナビゲーションを実現する...
目次Viteプロジェクトを作成するコンポーネントの作成Viteプロジェクトを作成するパフォーマンスが...
1. まずSELECT文を実行して、すべての切り捨て文を生成します。ステートメント形式: selec...
1. IE では、相対的な配置、つまり <div style="background...
MySQL はよく使われるオープンソースのデータベース ソフトウェアですが、初めてのユーザーにはあま...
序文MySQL は、myisam、innodb、memory、archive、example など、...
目次1. Dockerをインストールする2. ソナーイメージをインストールする3. ソナーを使ってコ...
ウェブサイト体験の分類1. 感覚体験:快適性を重視した視聴覚体験をユーザーに提供します。 2. イン...
序文コードを実行してエラーが発生すると、エラーが出力されます。エラーにはスタック情報が含まれており、...
MySQL データベース テーブルでは、インデックスを作成、表示、再構築、削除できるため、クエリ速度...
目次序文解決:ステップ1ステップ2序文環境: VMware Workstation 上に Linux...
ファイル名が少ないファイルを表示ファイル名を少なく | grep -n コンテンツを検索内容に応じて...
これは本質的に、ビュー インターフェース構造を記述するために使用される共通の js オブジェクトです...
目次序文1. ファイルの概念に関する基礎知識2. mkdir コマンド序文最近、Linux にますま...
1. /etc ディレクトリ内の、文字以外の文字で始まり、その後に文字と任意の長さのその他の文字が続...