MySQL InnoDBストレージエンジンについて簡単に説明します

MySQL InnoDBストレージエンジンについて簡単に説明します

序文:

ストレージ エンジンはデータベースの中核です。MySQL の場合、ストレージ エンジンはプラグインの形式で実行されます。 MySQL はさまざまなストレージ エンジンをサポートしていますが、最もよく使用されるのは InnoDB です。この記事では、主に InnoDB ストレージ エンジンに関連する知識を紹介します。

1. InnoDB の紹介

MySQL バージョン 5.5 以降では、デフォルトのストレージ エンジンは InnoDB です。 InnoDB は、高い信頼性と高いパフォーマンスを兼ね備えた汎用ストレージ エンジンです。 MySQL 5.7 では、別のデフォルトのストレージ エンジンを構成していない限り、ENGINE を指定せずに CREATE TABLE ステートメントを実行すると、InnoDB テーブルが作成されます。

# MySQL でサポートされているストレージ エンジンを表示します。mysql> show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| エンジン | サポート | コメント | トランザクション | XA | セーブポイント |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| InnoDB | デフォルト | トランザクション、行レベルのロック、外部キーをサポート | はい | はい | はい |
| MRG_MYISAM | YES | 同一の MyISAM テーブルのコレクション | NO | NO | NO |
| メモリ | はい | ハッシュベース、メモリに保存、一時テーブルに便利 | いいえ | いいえ | いいえ |
| BLACKHOLE | はい | /dev/null ストレージ エンジン (書き込んだものはすべて消えます) | いいえ | いいえ | いいえ |
| MyISAM | はい | MyISAM ストレージ エンジン | いいえ | いいえ | いいえ |
| CSV | はい | CSV ストレージ エンジン | いいえ | いいえ | いいえ |
| アーカイブ | はい | アーカイブ ストレージ エンジン | いいえ | いいえ | いいえ |
| PERFORMANCE_SCHEMA | YES | パフォーマンス スキーマ | NO | NO | NO |
| FEDERATED | NO | フェデレーテッド MySQL ストレージ エンジン | NULL | NULL | NULL |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+

# デフォルトのストレージ エンジンを表示します。mysql> show variables like 'default_storage_engine';
+------------------------+--------+
| 変数名 | 値 |
+------------------------+--------+
| デフォルトのストレージエンジン | InnoDB |
+------------------------+--------+

2. InnoDBの利点

InnoDB がこれほど人気が​​あるのは、主にその多くの機能上の利点によるものです。

1) サポートサービス

InnoDB の最も重要な点は、トランザクションをサポートしていることです。これが、InnoDB が MySQL で最も人気のあるストレージ エンジンになった非常に重要な理由であると言えます。さらに、InnoDB は 4 つの分離レベル (READ UNCOMMITTED、READ COMMITTED、REPEATABLE READ、SERIALIZABLE) も実装しており、トランザクションのサポートがより柔軟になっています。

2) 優れた災害復旧

InnoDB は、コミット、ロールバック、クラッシュリカバリを通じてデータのセキュリティを確保します。

具体的には、クラッシュリカバリとは、ハードウェアまたはソフトウェアの問題によりサーバーがクラッシュした場合、その時点のデータがどのような状態であっても、MySQL を再起動すると、InnoDB がクラッシュ前の状態に自動的に回復することを意味します。

3) 行レベルのロックを使用する

InnoDB は MyISAM のロック メカニズムを変更し、行ロックを実装します。 InnoDB の行ロック メカニズムはインデックスを通じて実装されていますが、データベース内のほとんどの SQL ステートメントはインデックスを使用してデータを取得します。行ロック メカニズムにより、同時実行のプレッシャーが高い環境でも InnoDB の競争力が大幅に向上します。

4) バッファ処理を実装

InnoDB は専用のバッファプールを提供し、バッファ管理を実装しています。インデックスだけでなく、データもバッファリングできます。頻繁に使用されるデータはメモリから直接処理できるため、ディスクからデータを取得するよりも高速です。専用データベース サーバーでは、物理メモリの最大 80% をバッファー プールに割り当てるのが一般的です。

5) 外部キーをサポートする

InnoDB は、外部キー制約、外部キーのチェック、挿入、更新、削除をサポートし、データの整合性を保証します。テーブルにデータを格納する際、各テーブルは主キーの順序で格納されます。テーブルの定義時に主キーが明示的に指定されていない場合、InnoDB は行ごとに 6 バイトの ROWID を生成し、それを主キーとして使用します。

要約:

この記事では、InnoDB ストレージ エンジンとその利点について簡単に説明します。MySQL を深く学びたい場合、InnoDB は絶対に避けて通れない重要な知識です。 InnoDB については他にもたくさんのコンテンツがあるので、機会があれば後ほど詳しく書きたいと思います。

上記はMySQL InnoDBストレージエンジンの詳細についての簡単な説明です。MySQL InnoDBストレージエンジンの詳細については、123WORDPRESS.COMの他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • MySQL InnoDB アーキテクチャの概要
  • MySQL InnoDB ReplicaSet の簡単な紹介
  • MySQL InnoDB ストレージエンジンのメモリ管理の詳細な説明
  • MySQL Innodbの主な機能挿入バッファ
  • MySQL InnoDB ロックの概要
  • MySQL の innodb_flush_log_at_trx_commit と sync_binlog を区別する方法
  • MySQL InnoDB ロック メカニズムの詳細な例
  • MySQLテクノロジーにおけるInnoDBロックの詳細な説明
  • MySQLデータベースエンジンをInnoDBに変更する
  • MySQL InnoDB テーブルスペース暗号化の例の詳細な説明
  • MySQL InnoDB トランザクション ロック ソースコード分析

<<:  Vue3 ドキュメント クイックスタート

>>:  Linux QT Kit が見つからない、バージョンが空の問題の解決策

推薦する

Excel をインポートするときに js で時間を変換する正しい方法について

目次1. 基本2. 問題の説明3. 解決策付録: js を使用して Excel の日付形式を変換する...

時間に基づいて日付をクエリするためのMySQL最適化テクニック

たとえば、昨日新規登録されたユーザーを照会するには、次の 2 つの書き方があります。 説明する ch...

MySql の null 関数の使用の共有

MySql の null に関する関数IFNULL ISNULL NULLIF IFNULL使用法:...

Clickhouse Docker クラスターの展開と構成を例を使って説明します

目次前面に書かれた環境の展開Zookeeper クラスタの展開Clickhouse クラスターの展開...

Vueは質問応答機能を実装する

1. リクエスト回答インターフェース2. ユーザーの回答が正しいかどうかを判断します。回答が正しい場...

ブラウザのURLの前に小さなアイコンを表示する方法

多くのウェブサイトを閲覧すると、ブラウザのアドレスバーの前に小さなアイコンがあり、ブラウザのタブの位...

Vue でデータコレクターを設計する

目次シナリオ中核問題ステータス監視状態監視の利点国家監視の欠点復興実行のアイデア依存関係の収集要約す...

MySQL数千万の大規模データに対する30のSQLクエリ最適化テクニックの詳細な説明

1. クエリを最適化するには、テーブル全体のスキャンを避けてください。まず、where と orde...

HTML の基本 - ハイパーリンク スタイルを設定する簡単な例

*** ハイパーリンクのスタイル設定の例a:link クリックされる前のハイパーリンクの状態a:vi...

Win10でIIS10を構成し、ASPプログラムのデバッグをサポートする手順

マイクロソフトIIS (Internet Information Server) は、Microso...

mysql を解決: エラー 1045 (28000): ユーザー 'root'@'localhost' のアクセスが拒否されました (パスワードの使用: NO/YES)

1. 問題時々Mysqlにログインしてパスワードを入力すると、この状況が発生しますmysql -u...

Docker で MySQL マスターとスレーブをデプロイする方法

画像をダウンロードMySQLイメージの選択 docker 検索 mysql MySQL 5.7 イメ...

ウェブページの内部アンカーポイントを実現するための純粋なCSSの上下オフセットコード例

最近、「フットボール ナビゲーション」Web サイトに取り組んでいるときに、上部の固定ナビゲーション...

CentOS 7 で Apache (httpd) サービスをインストールおよびアンインストールする詳細な手順

アンインストールまず、次のコマンドを使用して、httpd サービスがインストールされているかどうか、...

MySQL 5.7.21 解凍バージョンのインストールと設定のグラフィックチュートリアル

この記事では、MySQL 5.7.21の解凍版をダウンロードしてインストールする詳細な手順を記録して...