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 内部サーバーエラーの解決方法

推薦する

CentOS7にPostgreSQL11をインストールする方法

CentOS 7にPostgreSQL 11をインストールする PostgreSQL: 世界で最も先...

Docker コンテナのデプロイの試み - マルチコンテナ通信 (node+mongoDB+nginx)

その理由はモッカー プラットフォームを導入したかったので、友人の勧めで既成のプロジェクト api-m...

Linuxでユーザーが所属するグループを変更する方法

Linuxでユーザーが所属するグループを変更する1. ユーザーのグループを設定する usermod ...

Docker+gitlab+jenkins は、ゼロから自動デプロイメントを構築します

目次序文: 1. Dockerをインストールする2. DockerでJenkinsをインストールする...

Windows Server2014 にセキュリティを適用して MySQL をインストールする際のエラーに対する完璧な解決策

理由はインストール後にきちんとアンインストールされなかったためです。この問題を解決するには、次の点に...

Windows 10 での MySQL 8.0.19 のインストールと設定のチュートリアル

来学期にMySQLを勉強します。事前に自宅で練習していませんでした。インストールに時間がかかるとは思...

CSS を使用してマウスをホバーすることで他のタグのスタイルを変更するサンプルコード

序文:私の知る限り、現在 CSS で制御できるのは、タグをホバーしたときにそのタグの下の兄弟タグとサ...

Linux ファイルディレクトリ管理コマンドの概要

タッチコマンドこれには 2 つの機能があります。1 つは、既存のファイルの時間タグを現在のシステム時...

MySQLインデックスを最適化する方法

1. MySQL のインデックスの使用方法インデックスは、特定の列の値を持つ行をすばやく見つけるため...

IDEA で Docker プロジェクトをデプロイする手順

現在、ほとんどのプロジェクトが Docker 上にデプロイされ始めていますが、デプロイのプロセスはま...

IE6/7 は混乱するだろう: 空のテキスト ノードの高さの問題

序文: ietester でドキュメント コードを表示するには、debugbar を使用します。すべ...

JSはクリックドロップ効果を実装します

jsはクリックとドロップの特殊効果を実現します。まずは効果画像を見てみましょうさっそく始めましょう。...

jsはカスタムドロップダウンボックスを実装します

この記事の例では、カスタムドロップダウンボックスを実装するためのjsの具体的なコードを参考までに共有...

HTTP 戻りコード一覧(中国語と英語の説明)

httpリターンコードリスト(以下は概要です)詳細な中国語の説明についてはここをクリックしてくださ...

HTML でのメタタグと使用法の詳細な説明

これ以上無駄話をして時間を無駄にしないので、今日の話題を始めましょう。 HTML のメタタグ1. メ...