序文 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 は非同期読み込みツリーを実装します
問題を見つける今日、仕事中に、ローカル データベースから仮想マシン CentOS 6.6 上のデータ...
ポップアップニュースは国内のインターネットサービスでは一般的であり、リアルタイムプッシュ方式はウェブ...
目次Vue3 カプセル化メッセージプロンプトインスタンス関数スタイルレイアウトカプセル化メッセージ....
目次結果を一目で見るハート効果デジタルスクロールアニメーションアニメーションのように結果を一目で見る...
Linux システムに触れたばかりの初心者として、VMware 仮想マシンに CentOS6.5 シ...
目次チュートリアルシリーズ1. バックアップ戦略の説明1. バックアップの種類2. バックアップで考...
MySQL テーブルのテーブル構造をすばやく変更する - 「MySQL 管理」から抜粋 ALTER ...
目次序文1. 従来のVueコンポーネント1. メインコンポーネントコード: 2. 使用方法3. 成果...
Redis クラスターとはRedis クラスターは、Redis が提供する分散データベース ソリ...
目次1 nginxの紹介1 nginxとは何か2 つのアプリケーション シナリオ2 nginxのイン...
この記事の例では、フォーム検証機能を実装するためのjsの具体的なコードを参考までに共有しています。具...
ソースコード(一部のクラスは削除されています):コードをコピーコードは次のとおりです。 <テー...
1. dockerでtomcat8をインストールする1. Docker HubでTomcatイメージ...
MIME タイプとは何ですか? 1. まず、ブラウザがコンテンツを処理する方法を理解する必要がありま...
まず、コンテナが稼働している必要がありますコンテナのCONTAINER IDは、sudo docke...