MySQL シリーズ 7 MySQL ストレージ エンジン

MySQL シリーズ 7 MySQL ストレージ エンジン

1. MyISAM ストレージエンジン

欠点:

  1. トランザクションはサポートされていません
  2. 最小粒度ロック: テーブルレベル
  3. 読むことと書くことはお互いを妨げるものです。 書きながら読むことはできませんし、読みながら書くこともできません。
  4. MVCC をサポートしていません (マルチバージョン同時実行制御メカニズムをサポート)
  5. クラスター化インデックスはサポートされていません
  6. データキャッシュはサポートされていません
  7. 外部キーはサポートされていません
  8. クラッシュ回復が不十分

アドバンテージ:

  1. 最大256TBのストレージスペースをサポート
  2. データの読み取り速度が速く、リソース消費も少ない

MyISAM エンジン ストレージ ファイル:

  • tbl_name.frm: テーブル形式の定義
  • tbl_name.MYD: データファイル
  • tbl_name.MYI: インデックスファイル

適用可能なシナリオ: MySQL 5.5.5 より前のデフォルトのデータベース エンジン。データが読み取り専用 (または書き込みが少ない) で、テーブルが小さい (長い修復操作が許容される) シナリオに適用可能

2: InnoDB ストレージエンジン

特徴:

  1. 64TB
  2. サポート業務
  3. 行レベルロック
  4. マルチバージョン同時実行制御メカニズム (MVCC) をサポート
  5. クラスター化インデックスをサポート
  6. データキャッシュをサポート
  7. 外部キーをサポート

InnoDB データベース ファイル:

  • tb_name.frm: テーブル形式の定義
  • tb_name.ibd : データファイル

注意: デフォルトでは、すべての innodb テーブル データ ファイルはデータベース ディレクトリの ibddata1、ibddata2、... に保存されるため、管理が非常に不便です。

強く推奨: innodb_file_per_table=ON を有効にし、テーブルごとに別のテーブルスペースを使用してテーブルのデータとインデックスを保存します。

有効化: innodb_file_per_table

/etc/my.cnfを編集し、[mysqld]の下にinnodb_file_per_tableを追加します。
サーバーを再起動します# service mysqld restart
MariaDB [(なし)]> SHOW VARIABLES LIKE 'innodb_file_per_table';
+-----------------------+-------+
| 変数名 | 値 |
+-----------------------+-------+
| innodb_file_per_table | オン |
+-----------------------+-------+

1. ストレージエンジンを管理する

MySQL でサポートされているストレージ エンジンを表示します: MariaDB [(none)]> SHOW ENGINES\G

現在のデフォルトのストレージ エンジンを表示します。

MariaDB [(なし)]> SHOW VARIABLES LIKE 'storage_engine';
+----------------+--------+
| 変数名 | 値 |
+----------------+--------+
| ストレージ エンジン | InnoDB |
+----------------+--------+

デフォルトのストレージ エンジンを設定します。

/etc/my.confを編集し、[mysqld]の下にdefault_storage_engine = InnoDBを追加します。

2. InnoDBストレージエンジンキャッシュ

InnoDB ストレージ エンジンのバッファー プールのバッファー プール ヒット率は、通常 99% 以上です。

関連する状態変数:

MariaDB [(なし)]> SHOW GLOBAL STATUS LIKE 'innodb%read%'\G
  • Innodb_buffer_pool_reads: 物理ディスクからページが読み取られた回数を示します。
  • Innodb_buffer_pool_read_ahead: 事前読み取り回数
  • Innodb_buffer_pool_read_ahead_evicted: 事前に読み取られたが、読み取られずにバッファ プールから置き換えられたページの数。これは通常、事前読み取りの効率を判断するために使用されます。
  • Innodb_buffer_pool_read_requests: バッファプールからページが読み取られる回数
  • Innodb_data_read: 読み取られたバイトの総数
  • Innodb_data_reads: 開始された読み取り要求の数。各読み取りでは複数のページの読み取りが必要になる場合があります。

Innodb バッファプールヒット率 = Innodb_buffer_pool_read_requests / ( Innodb_buffer_pool_read_requests + Innodb_buffer_pool_read_ahead + Innodb_buffer_pool_reads )

読み取りあたりの平均バイト数 = Innodb_data_read / Innodb_data_reads

3. その他のストレージエンジン

  • Performance_Schema: Performance_Schema データベース。
  • メモリ: すべてのデータは RAM に保存されるため、参照データやその他の類似データの迅速な検索が必要な環境で高速にアクセスできます。一時データの保存に適しています。このエンジンは以前は HEAP エンジンとして知られていました。
  • MRG_MyISAM: MySQL DBA または開発者が一連の同一の MyISAM テーブルを論理的にグループ化し、それらを単一のオブジェクトとして参照できるようにします。データ ウェアハウスなどの VLDB (Very Large Database) 環境に適用可能。
  • アーカイブ: めったに参照されない大量のアーカイブまたはセキュリティ監査情報を保存および取得するために、SELECT および INSERT 操作のみをサポートします。行レベルのロックと専用バッファをサポートします。
  • フェデレーテッド フェデレーション: 他のリモート MySQL サーバーにアクセスするために使用されるプロキシ。リモート MySQL サーバーへのクライアント接続を作成し、クエリをリモート サーバーに送信して実行し、データ アクセスを完了します。個別の MySQL サーバーをリンクして、複数の物理サーバーから論理データベースを作成する機能を提供します。分散環境やデータ マート環境に非常に適しています。
  • BDB: InnoDB を置き換えることができ、COMMIT、ROLLBACK、およびその他のトランザクション機能をサポートするトランザクション エンジン。
  • Cluster/NDB: MySQL のクラスター化データベース エンジン。最高の稼働時間と可用性も要求される高性能検索要件を持つアプリケーションに特に適しています。
  • CSV: CSV ストレージ エンジンは、コンマ区切り値形式を使用してテキスト ファイルにデータを保存します。他のソフトウェアやアプリケーション間のデータ交換は、CSV エンジンを使用して CSV 形式でインポートおよびエクスポートできます。
  • BLACKHOLE: ブラックホール ストレージ エンジンはデータを受け入れますが、保存は行わず、取得すると常に空のセットが返されます。この機能は、データが自動的に複製されるがローカルには保存されない分散データベース設計で使用できます。
  • 例: 何もしない「スタブ」エンジン。このエンジンを使用してテーブルを作成することはできますが、テーブルにデータを保存したり、テーブルからデータを取得したりすることはできません。これは、新しいストレージ エンジンの作成を開始する方法の例として意図されています。

これで、MySQL シリーズ、第 7 部、MySQL ストレージ エンジンに関する記事は終了です。MySQL ストレージ エンジンの詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQLアーキテクチャに基づく分析
  • MySQLアーキテクチャに基づく詳細な分析
  • MySQLのストレージエンジンの詳細な説明
  • MySQLメモリストレージエンジンに関する知識
  • MySQL InnoDB ストレージエンジンのメモリ管理の詳細な説明
  • MySQL のストレージ エンジンの違いと比較
  • MySQLのInnoDBストレージエンジンにおけるさまざまなロックの詳細な説明
  • MySQL の MyISAM ストレージ エンジンにおける非クラスター化インデックスの詳細な説明
  • MySQL ストレージ エンジン InnoDB と MyISAM
  • MySQL アーキテクチャとストレージ エンジンの紹介

<<:  CSSの記述形式、モバイルページの基本構造の詳細な説明

>>:  ウェブデザインの初心者に役立つ学習教材をいくつかお勧めします

推薦する

ネイティブJSは非常に見栄えの良いカウンターを実装します

今日は、ネイティブ JS で実装された見栄えの良いカウンターを紹介します。効果は次のとおりです。 以...

CSSレイアウトにおけるフローティング問題に対する4つの解決策の詳細な説明

1. 原因:サブボックスをフロートに設定した後の効果: 青いボックスをフロートに設定すると、標準のド...

Docker Composeのデプロイと基本的な使い方の詳しい説明

1. Docker Composeの概要Compose は、マルチコンテナ Docker アプリケー...

この記事では、jsのデータ型とデータ構造の世界を紹介します。

目次1. 動的型付けとは何ですか? 2. データ型2.1 プリミティブ型 (6 つのプリミティブ型、...

Dapr を使用してマイクロサービスをゼロから簡素化する例

目次序文1. Dockerをインストールする2. Dapr CLIをインストールする3. Net6 ...

JavaScript は大容量ファイルのアップロード処理を実装します

数十 MB 程度の小さいものから 1G 以上の大きいものまで、ビデオ ファイルなどのファイルのアップ...

Linux Tensorflow2.0のインストール問題を解決する

conda アップデート conda pip で tf-nightly-gpu-2.0-previ...

ウェブページのアクセス速度に関する主な問題と解決策

<br />ウェブサイトのアクセス速度はウェブサイトのトラフィックに直接影響を及ぼし、ウ...

HTML ウェブページにおけるさまざまなフォント形式の詳細

このセクションでは、テキストの変更の詳細から始めます。これにより、読者はさまざまな HTML フォン...

Postman に基づく HTTP インターフェース テスト プロセスの分析

偶然、素晴らしい人工知能のチュートリアルを発見したので、みんなと共有せずにはいられませんでした。この...

Tomcatソースコードをideaにインポートする方法

目次1. Tomcatコードをダウンロードする2. ダウンロード後のディレクトリ構造3. ソースコー...

react-navigation6.xルーティングライブラリの基本的な使い方の詳しい説明

目次react-nativeプロジェクトの初期化react-nativeプロジェクトをインストールす...

Vueは視覚的なドラッグページエディタを実装します

目次ドラッグアンドドロップの実装ドラッグイベントドラッグして開始リリースゾーンでの移動境界処理、角度...

Vueはシンプルな虫眼鏡効果を実装します

この記事では、参考までに、簡単な虫眼鏡効果を実現するためのVueの具体的なコードを紹介します。具体的...