MySQLでよく使われる4つのストレージエンジンについて簡単に説明します。

MySQLでよく使われる4つのストレージエンジンについて簡単に説明します。

よく使われる4つのMySQLエンジンの紹介

(1):MyISAMストレージエンジン:

トランザクションや外部キーはサポートされていません。その利点は、アクセス速度が速いことです。トランザクションの整合性を必要としないアプリケーションや、選択と挿入が主なアプリケーションでは、基本的にこのエンジンを使用してテーブルを作成できます。

3つの異なるストレージ形式をサポート: 静的テーブル、動的テーブル、圧縮テーブル

静的テーブル: テーブル内のフィールドはすべて非可変長フィールドであるため、各レコードの長さは固定です。利点は、保存が非常に高速で、キャッシュが容易で、障害が発生した場合に簡単に回復できることです。欠点は、通常、動的テーブルよりも多くのスペースを占有することです (保存中に列幅の定義に従ってスペースが埋められるため)。PS: データを取得すると、フィールドの後のスペースはデフォルトで削除されます。注意しないと、データ自体のスペースも無視されます。

動的テーブル: レコードの長さは固定されていません。このストレージの利点は、比較的少ないスペースしか占有しないことです。欠点: データの頻繁な更新と削除により、簡単に断片化が発生する可能性があります。パフォーマンスを向上させるには、OPTIMIZE TABLE または myisamchk -r コマンドを定期的に実行する必要があります。

圧縮テーブル: 各レコードは個別に圧縮されるため、アクセスのオーバーヘッドはほとんどありません。

(2)InnoDBストレージエンジン*

ストレージ エンジンは、コミット、ロールバック、クラッシュ回復機能によりトランザクションの安全性を提供します。ただし、MyISAM エンジンと比較すると、書き込み処理の効率は低く、データとインデックスを保持するためにより多くのディスク領域が必要になります。
InnoDB ストレージ エンジンの機能: 自動拡張列と外部キー制約のサポート

(3)メモリストレージエンジン

メモリ ストレージ エンジンは、メモリ内に存在するコンテンツを使用してテーブルを作成します。各メモリ テーブルは実際には 1 つのディスク ファイルにのみ対応し、形式は .frm です。メモリ タイプのテーブルは、データがメモリに保存され、デフォルトで HASH インデックスを使用するため、アクセスが非常に高速ですが、サービスがシャットダウンされると、テーブル内のデータは失われます。
MEMORY ストレージ エンジンを持つテーブルでは、BTREE インデックスまたは HASH インデックスの使用を選択できます。2 つの異なるタイプのインデックスには、異なる使用範囲があります。

ハッシュインデックスの利点:
ハッシュ インデックスの特殊な構造により、検索効率が非常に高くなります。ルート ノードからブランチ ノード、そして最終的にページ ノードまで複数の IO アクセスを必要とする B ツリー インデックスとは異なり、インデックス検索は 1 回で済みます。そのため、ハッシュ インデックスのクエリ効率は B ツリー インデックスよりもはるかに高くなります。
ハッシュ インデックスの欠点: 不正確な検索はどうでしょうか? これも明らかです。ハッシュ アルゴリズムは等しい値の計算に基づいているため、ハッシュ インデックスは無効であり、「like」などの範囲検索をサポートしていません。

メモリ型ストレージ エンジンは、主に内容が頻繁に変更されないコード テーブルや、統計演算の中間結果テーブルとして使用され、中間結果を効率的に分析して最終的な統計結果を取得します。ストレージ エンジンがメモリであるテーブルを更新する場合は、データが実際にはディスクに書き込まれないため、サービスの次回の再起動後に変更されたデータを取得する方法を考慮する必要があるため注意が必要です。

(4)MERGEストレージエンジン

Merge ストレージ エンジンは、MyISAM テーブルのグループの組み合わせです。これらの MyISAM テーブルは、まったく同じ構造を持つ必要があります。マージ テーブル自体にはデータは含まれません。マージ タイプのテーブルは、クエリ、更新、および削除できます。これらの操作は、実際には内部の MyISAM テーブルで実行されます。

上記は、編集者が紹介したMySQLでよく使用される4つのストレージエンジンの詳細な説明と統合です。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。編集者がすぐに返信します。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

以下もご興味があるかもしれません:
  • MySQL ストレージ エンジン MyISAM と InnoDB の違いの概要
  • MySQLのストレージエンジンの詳細な説明
  • MySQL共通ストレージエンジンの機能と使用方法の詳細な説明
  • MySQL データ分析ストレージエンジンの例の説明

<<:  Linux デバイスに空き容量がありません inode の満杯により 500 エラーが発生します

>>:  Nginx 500 内部サーバーエラーの解決方法

推薦する

州と市町村の連携を簡単に実現するJavaScript

この記事では、省と市の簡単な連携を実現するためのJavaScriptの具体的なコードを参考までに紹介...

Vue は Tencent TIM インスタント メッセージングを統合します

この記事では主に、Tencent TIM インスタント メッセージングを Vue と統合する方法を紹...

img usemap 属性 中国地図リンク

HTML img タグ: Web ページに導入される画像を定義します。興味深い usemap 属性も...

Webリクエストと処理のTomcatソースコード分析

目次序文1. エンドポイント2. 接続ハンドラ3. コヨーテ4. コンテナ責任チェーンパターン序文T...

JavaScript を使用してページに動的な検証コードを実装する例

導入:現在、プログラム攻撃を防ぐために、ユーザーがログインまたは登録するときに多くの動的検証テクノロ...

スクロールバーがスペースを占有することで発生するバグを修正しました

背景このバグは滾動條占據空間ことで発生していました。いくつかの情報を確認して、ようやく解決しました。...

MLSQL スタックでストリームのデバッグを簡単にする方法

序文クラスメートが MLSQL Stack のストリーミング サポートを調査しています。そこで、フロ...

MySQL 起動エラー 1067 および文字セットを変更して再起動した後の無効な回復

公式サイトからmysql-5.6.37-winx64.zipの解凍バージョンをダウンロードし、構成フ...

MySQL 5.7.16 ZIP パッケージのインストールと設定のチュートリアル

この記事では、MySQL 5.7.16 ZIPパッケージのインストールと設定のチュートリアルを参考ま...

jQuery+h5 で 9 マス抽選特殊効果を実現 (フロントエンドとバックエンドのコード)

序文:フロントエンド: jq+h5 で 9 グリッドのダイナミック効果を実現バックエンド: thin...

Innodb で MySQL の 2T テーブルをすばやく削除する方法の例

序文この記事は主に、MySQL の Innodb で 2T の大きなテーブルをすばやく削除する方法に...

複数レベルの複雑な動的ヘッダーの avue-crud 実装例

目次序文バックグラウンドデータの結合フロントエンドデータ表示ページ効果表示Avue.js は、既存の...

HTMLボタンを中央に配置する方法

HTML ボタン自体を中央に配置するにはどうすればよいでしょうか? このアイデアは簡単に見つかります...