[MySQL] MySQL ストレージ エンジン
テーブルを作成するとき、テーブルのストレージエンジンであるテーブルのタイプを指定できます。テーブルのストレージ エンジンは、データの保存方法とアクセス方法、およびトランザクションの保存方法を決定します。テーブルのストレージ エンジンは、SQL ステートメントの処理に必要なストレージ容量と速度に大きく影響します。ストレージ エンジンが異なれば特性も異なります。多くの複雑な SELECT ステートメントの処理に適したストレージ エンジンもあれば、高速な更新を実現するのに適したストレージ エンジンもあります。
InnoDB
InnoDB は、MySQL のデフォルトのトランザクション エンジンであり、最も重要で広く使用されているストレージ エンジンです。多数の短期間のトランザクションを処理するように設計されています。ほとんどの場合、短期間のトランザクションは正常に送信され、ロールバックされることはほとんどありません。 InnoDB のパフォーマンスと自動クラッシュ回復機能により、非トランザクション ストレージのニーズに人気があります。
他のストレージ エンジンを使用する特別な理由がない限り、InnoDB エンジンを優先する必要があります。 ————「高性能 MySQL」
InnoDB は、MVCC を使用して高い同時実行性をサポートし、4 つの標準分離レベルを実装します。デフォルトのレベルは REPEATABLE READ で、ギャップ ロック戦略によりファントム読み取りが防止されます。
InnoDB は、クラスター化インデックスに基づいて確立された
が外部キー制約をサポートしていることを意味します。
列 AUTO_INCREMENT 属性の自動追加をサポートします。
事務。 InnoDB ストレージ エンジンは、トランザクションをサポートする標準の MySQL ストレージ エンジンです。
インデックスを削除または追加するときにテーブルデータ全体をコピーする必要はありません。
InnoDB は、ディスクからデータを読み取る際の予測可能な先読み、メモリ内にハッシュ インデックスを自動的に作成して操作を高速化できる適応型ハッシュ インデックス、挿入バッファーを高速化できる挿入など、多くの内部最適化を行いました。
InnoDB テーブルはクラスター化インデックスに基づいて構築されます。 InnoDB のインデックス構造は他の MySQL エンジンとは大きく異なり、クラスター化インデックスは主キー クエリに対して高いパフォーマンスを発揮します。ただし、セカンダリ インデックスには主キー列が含まれている必要があるため、主キー列が大きい場合は、他のすべてのインデックスも大きくなります。したがって、テーブルに多数のインデックスがある場合は、主キーをできるだけ小さくする必要があります。
MyISAM
MyISAM は、全文インデックス作成、圧縮、空間関数 (GIS) などを含む多数の機能を提供しますが、MyISAM はトランザクションと行レベルのロックをサポートしておらず、サポートできないことは間違いありません。クラッシュ後に安全に回復します。 MySQL 5.1 以前のバージョンでは、MyISAM がデフォルトのストレージ エンジンでした。MySQL が長い間トランザクションをサポートしてきたにもかかわらず、多くの人々の概念では、MySQL は依然として非トランザクション データベースであるのはまさにこのエンジンのおかげです。
MyISAM は行ではなくテーブル全体をロックします。
全文インデックス作成をサポートします。
圧縮テーブルをサポートします。圧縮テーブルは変更できないため、ディスク領域の使用量を大幅に削減できるため、ディスク I/O 操作が減少し、クエリのパフォーマンスが向上します。
ストレージ
MyISAM は、テーブルを 2 つのファイル (データ ファイルとインデックス ファイル) に保存し、それぞれ .MYD と .MYI 拡張子を付けます。 MyISAM テーブルには動的行または静的行を含めることができます。 MySQL は、テーブル定義に基づいて使用する行フォーマットを決定します。
MySQL5.0 では、MyISAM テーブルに可変長の行がある場合、デフォルト構成では 256 TB のデータしか処理できません
機能
MySQL の初期のストレージ エンジンの 1 つとして、まだいくつかの機能があります。
ロックと同時実行 – テーブルロック
MyISAMは行ではなくテーブル全体をロックします。読み取り時には、読み取りが必要なすべてのテーブルに共有ロックが追加され、書き込み時にはテーブルに排他ロックが追加されます。ただし、テーブルに読み取りクエリがある間、新しいレコードをテーブルに挿入することもできます (同時挿入)。
修復
MyISAM テーブルの場合、MySQL は検査とメンテナンス操作を手動または自動で実行できますが、ここで説明する修復はトランザクション回復やクラッシュ回復とは異なる概念です。
インデックス機能
MyISAMテーブルの場合、BLOBやTEXTなどの長いフィールドでも最初の500文字に基づいてインデックスを作成できます。 MyISAM は、単語の分割に基づいて作成されたインデックスである全文インデックス作成もサポートしており、複雑なクエリをサポートできます。
インデックスキーの遅延更新
MyISAMテーブル作成時にDELAY_KEY_WRITEオプションが指定されている場合、各変更が完了しても変更されたインデックスデータはすぐにはディスクに書き込まれません。
MyISAM のパフォーマンス
MyISAM エンジンはシンプルになるように設計されており、データはコンパクトな形式で保存されるため、特定のシナリオではパフォーマンスが非常に優れています。ただし、テーブル ロックの存在はパフォーマンスに大きな影響を与えます。
アーカイブ エンジン
アーカイブ ストレージ エンジンは、INSERT と SELECT のみをサポートします。アーカイブ エンジンはすべての書き込みをキャッシュし、zlib を使用して挿入を圧縮するため、MyISAM テーブルよりも必要なディスク I/O が少なくなります。ただし、すべての SELECT クエリではテーブル全体のスキャンを実行する必要があります。したがって、アーカイブ テーブルは、データ分析のためにテーブル全体のスキャンが必要になることが多い、ログ記録およびデータ収集アプリケーションに適しています。
アーカイブ エンジンは行レベルのロックと専用バッファーをサポートしているため、高度な同時挿入を実現できます。アーカイブにより、テーブル内に存在するすべての行が返されるまで他の SELECT が実行されなくなり、その後クエリが開始されて一貫した読み取りが実現されます。さらに、完了するまで読み取り操作には表示されないバッチ挿入も実装されています。このメカニズムはトランザクションと MVCC の一部の機能を模倣していますが、アーカイブ エンジンはトランザクション エンジンではなく、高速挿入と圧縮用に最適化されたエンジンです。
CSV ストレージ エンジン
このエンジンは通常の CSV ファイルを MySQL テーブルとして処理できますが、このテーブルはインデックスをサポートしていません。 CSV ファイルを CSV ストレージ エンジンのデータ ディレクトリにコピーするだけで、MySQL にリストされているルールを使用して開いて使用できます。
メモリ エンジン
データに迅速にアクセスする必要があり、再起動後にデータが変更されたり失われたりしない場合は、メモリ テーブルを使用すると非常に便利です。メモリ テーブルは、すべてのデータがメモリに保存され、ディスク I/O 操作が必要ないため、MyISAM テーブルよりも 1 桁高速です。再起動後もメモリ テーブルの構造は保持されますが、データは失われます。
ハッシュインデックスをサポートしているため、検索操作は非常に高速です。
はテーブルレベルのロックであるため、同時書き込みパフォーマンスは低くなります。
はBLOB型やTEXT型のカラムをサポートしておらず、各行の長さは固定です。varcharを指定しても実際のストレージではcharに変換されます。
説明
InnoDB にはない機能を使用する必要があり、それを置き換える他に方法がない場合を除き、InnoDB エンジンである「高性能 MySQL」を優先する必要があります
さらに、上記にリストされているのはほんの一部です。私たちがよく目にするストレージ エンジンは包括的なものではありません。
テーブルを作成するとき、テーブルのストレージエンジンであるテーブルのタイプを指定できます。テーブルのストレージ エンジンは、データの保存方法とアクセス方法、およびトランザクションの保存方法を決定します。テーブルのストレージ エンジンは、SQL ステートメントの処理に必要なストレージ容量と速度に大きく影響します。ストレージ エンジンが異なれば特性も異なります。多くの複雑な SELECT ステートメントの処理に適したストレージ エンジンもあれば、高速な更新を実現するのに適したストレージ エンジンもあります。
InnoDB
InnoDB は、MySQL のデフォルトのトランザクション エンジンであり、最も重要で広く使用されているストレージ エンジンです。多数の短期間のトランザクションを処理するように設計されています。ほとんどの場合、短期間のトランザクションは正常に送信され、ロールバックされることはほとんどありません。 InnoDB のパフォーマンスと自動クラッシュ回復機能により、非トランザクション ストレージのニーズに人気があります。
他のストレージ エンジンを使用する特別な理由がない限り、InnoDB エンジンを優先する必要があります。 ————「高性能 MySQL」
InnoDB は、MVCC を使用して高い同時実行性をサポートし、4 つの標準分離レベルを実装します。デフォルトのレベルは REPEATABLE READ で、ギャップ ロック戦略によりファントム読み取りが防止されます。
InnoDB は、クラスター化インデックスに基づいて確立された
が外部キー制約をサポートしていることを意味します。
列 AUTO_INCREMENT 属性の自動追加をサポートします。
事務。 InnoDB ストレージ エンジンは、トランザクションをサポートする標準の MySQL ストレージ エンジンです。
インデックスを削除または追加するときにテーブルデータ全体をコピーする必要はありません。
InnoDB は、ディスクからデータを読み取る際の予測可能な先読み、メモリ内にハッシュ インデックスを自動的に作成して操作を高速化できる適応型ハッシュ インデックス、挿入バッファーを高速化できる挿入など、多くの内部最適化を行いました。
InnoDB テーブルはクラスター化インデックスに基づいて構築されます。 InnoDB のインデックス構造は他の MySQL エンジンとは大きく異なり、クラスター化インデックスは主キー クエリに対して高いパフォーマンスを発揮します。ただし、セカンダリ インデックスには主キー列が含まれている必要があるため、主キー列が大きい場合は、他のすべてのインデックスも大きくなります。したがって、テーブルに多数のインデックスがある場合は、主キーをできるだけ小さくする必要があります。
MyISAM
MyISAM は、全文インデックス作成、圧縮、空間関数 (GIS) などを含む多数の機能を提供しますが、MyISAM はトランザクションと行レベルのロックをサポートしておらず、サポートできないことは間違いありません。クラッシュ後に安全に回復します。 MySQL 5.1 以前のバージョンでは、MyISAM がデフォルトのストレージ エンジンでした。MySQL が長い間トランザクションをサポートしてきたにもかかわらず、多くの人々の概念では、MySQL は依然として非トランザクション データベースであるのはまさにこのエンジンのおかげです。
MyISAM は行ではなくテーブル全体をロックします。
全文インデックス作成をサポートします。
圧縮テーブルをサポートします。圧縮テーブルは変更できないため、ディスク領域の使用量を大幅に削減できるため、ディスク I/O 操作が減少し、クエリのパフォーマンスが向上します。
ストレージ
MyISAM は、テーブルを 2 つのファイル (データ ファイルとインデックス ファイル) に保存し、それぞれ .MYD と .MYI 拡張子を付けます。 MyISAM テーブルには動的行または静的行を含めることができます。 MySQL は、テーブル定義に基づいて使用する行フォーマットを決定します。
MySQL5.0 では、MyISAM テーブルに可変長の行がある場合、デフォルト構成では 256 TB のデータしか処理できません
機能
MySQL の初期のストレージ エンジンの 1 つとして、まだいくつかの機能があります。
ロックと同時実行 – テーブルロック
MyISAMは行ではなくテーブル全体をロックします。読み取り時には、読み取りが必要なすべてのテーブルに共有ロックが追加され、書き込み時にはテーブルに排他ロックが追加されます。ただし、テーブルに読み取りクエリがある間、新しいレコードをテーブルに挿入することもできます (同時挿入)。
修復
MyISAM テーブルの場合、MySQL は検査とメンテナンス操作を手動または自動で実行できますが、ここで説明する修復はトランザクション回復やクラッシュ回復とは異なる概念です。
インデックス機能
MyISAMテーブルの場合、BLOBやTEXTなどの長いフィールドでも最初の500文字に基づいてインデックスを作成できます。 MyISAM は、単語の分割に基づいて作成されたインデックスである全文インデックス作成もサポートしており、複雑なクエリをサポートできます。
インデックスキーの遅延更新
MyISAMテーブル作成時にDELAY_KEY_WRITEオプションが指定されている場合、各変更が完了しても変更されたインデックスデータはすぐにはディスクに書き込まれません。
MyISAM のパフォーマンス
MyISAM エンジンはシンプルになるように設計されており、データはコンパクトな形式で保存されるため、特定のシナリオではパフォーマンスが非常に優れています。ただし、テーブル ロックの存在はパフォーマンスに大きな影響を与えます。
アーカイブ エンジン
アーカイブ ストレージ エンジンは、INSERT と SELECT のみをサポートします。アーカイブ エンジンはすべての書き込みをキャッシュし、zlib を使用して挿入を圧縮するため、MyISAM テーブルよりも必要なディスク I/O が少なくなります。ただし、すべての SELECT クエリではテーブル全体のスキャンを実行する必要があります。したがって、アーカイブ テーブルは、データ分析のためにテーブル全体のスキャンが必要になることが多いログおよびデータ収集アプリケーションに適しています。
アーカイブ エンジンは行レベルのロックと専用バッファーをサポートしているため、高度な同時挿入を実現できます。アーカイブにより、テーブル内に存在するすべての行が返されるまで他の SELECT が実行されなくなり、その後クエリが開始されて一貫した読み取りが実現されます。さらに、完了するまで読み取り操作には表示されないバッチ挿入も実装されています。このメカニズムはトランザクションと MVCC の一部の機能を模倣していますが、アーカイブ エンジンはトランザクション エンジンではなく、高速挿入と圧縮用に最適化されたエンジンです。
CSV ストレージ エンジン
このエンジンは通常の CSV ファイルを MySQL テーブルとして処理できますが、このテーブルはインデックスをサポートしていません。 CSV ファイルを CSV ストレージ エンジンのデータ ディレクトリにコピーするだけで、MySQL にリストされているルールを使用して開いて使用できます。
メモリ エンジン
データに素早くアクセスする必要があり、再起動後にデータが変更されたり失われたりしない場合は、メモリ テーブルを使用すると非常に便利です。メモリ テーブルは、すべてのデータがメモリに保存され、ディスク I/O 操作が必要ないため、MyISAM テーブルよりも 1 桁高速です。再起動後もメモリ テーブルの構造は保持されますが、データは失われます。
ハッシュインデックスをサポートしているため、検索操作は非常に高速です。
はテーブルレベルのロックであるため、同時書き込みパフォーマンスは低くなります。
はBLOB型やTEXT型のカラムをサポートしておらず、各行の長さは固定です。varcharを指定しても実際のストレージではcharに変換されます。
説明
InnoDB にはない機能を使用する必要があり、それを置き換える他の方法がない場合を除き、InnoDB エンジンである「高性能 MySQL」を優先する必要があります
さらに、上記にリストされているのはほんの一部です。私たちがよく目にするストレージ エンジンは包括的なものではありません。
上記は [MySQL] MySQL ストレージ エンジンの内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









MySQLは、オープンソースのリレーショナルデータベース管理システムです。 1)データベースとテーブルの作成:createdatabaseおよびcreateTableコマンドを使用します。 2)基本操作:挿入、更新、削除、選択。 3)高度な操作:参加、サブクエリ、トランザクション処理。 4)デバッグスキル:構文、データ型、およびアクセス許可を確認します。 5)最適化の提案:インデックスを使用し、選択*を避け、トランザクションを使用します。

次の手順でphpmyadminを開くことができます。1。ウェブサイトコントロールパネルにログインします。 2。phpmyadminアイコンを見つけてクリックします。 3。MySQL資格情報を入力します。 4.「ログイン」をクリックします。

MySQLはオープンソースのリレーショナルデータベース管理システムであり、主にデータを迅速かつ確実に保存および取得するために使用されます。その実用的な原則には、クライアントリクエスト、クエリ解像度、クエリの実行、返品結果が含まれます。使用法の例には、テーブルの作成、データの挿入とクエリ、および参加操作などの高度な機能が含まれます。一般的なエラーには、SQL構文、データ型、およびアクセス許可、および最適化の提案には、インデックスの使用、最適化されたクエリ、およびテーブルの分割が含まれます。

MySQLは、そのパフォーマンス、信頼性、使いやすさ、コミュニティサポートに選択されています。 1.MYSQLは、複数のデータ型と高度なクエリ操作をサポートし、効率的なデータストレージおよび検索機能を提供します。 2.クライアントサーバーアーキテクチャと複数のストレージエンジンを採用して、トランザクションとクエリの最適化をサポートします。 3.使いやすく、さまざまなオペレーティングシステムとプログラミング言語をサポートしています。 4.強力なコミュニティサポートを提供し、豊富なリソースとソリューションを提供します。

Redisは、単一のスレッドアーキテクチャを使用して、高性能、シンプルさ、一貫性を提供します。 I/Oマルチプレックス、イベントループ、ノンブロッキングI/O、共有メモリを使用して同時性を向上させますが、並行性の制限、単一の障害、および書き込み集約型のワークロードには適していません。

MySQLとSQLは、開発者にとって不可欠なスキルです。 1.MYSQLはオープンソースのリレーショナルデータベース管理システムであり、SQLはデータベースの管理と操作に使用される標準言語です。 2.MYSQLは、効率的なデータストレージと検索機能を介して複数のストレージエンジンをサポートし、SQLは簡単なステートメントを通じて複雑なデータ操作を完了します。 3.使用の例には、条件によるフィルタリングやソートなどの基本的なクエリと高度なクエリが含まれます。 4.一般的なエラーには、SQLステートメントをチェックして説明コマンドを使用することで最適化できる構文エラーとパフォーマンスの問題が含まれます。 5.パフォーマンス最適化手法には、インデックスの使用、フルテーブルスキャンの回避、参加操作の最適化、コードの読み取り可能性の向上が含まれます。

データベースとプログラミングにおけるMySQLの位置は非常に重要です。これは、さまざまなアプリケーションシナリオで広く使用されているオープンソースのリレーショナルデータベース管理システムです。 1)MySQLは、効率的なデータストレージ、組織、および検索機能を提供し、Web、モバイル、およびエンタープライズレベルのシステムをサポートします。 2)クライアントサーバーアーキテクチャを使用し、複数のストレージエンジンとインデックスの最適化をサポートします。 3)基本的な使用には、テーブルの作成とデータの挿入が含まれ、高度な使用法にはマルチテーブル結合と複雑なクエリが含まれます。 4)SQL構文エラーやパフォーマンスの問題などのよくある質問は、説明コマンドとスロークエリログを介してデバッグできます。 5)パフォーマンス最適化方法には、インデックスの合理的な使用、最適化されたクエリ、およびキャッシュの使用が含まれます。ベストプラクティスには、トランザクションと準備された星の使用が含まれます

Redisデータベースの効果的な監視は、最適なパフォーマンスを維持し、潜在的なボトルネックを特定し、システム全体の信頼性を確保するために重要です。 Redis Exporter Serviceは、Prometheusを使用してRedisデータベースを監視するために設計された強力なユーティリティです。 このチュートリアルでは、Redis Exporterサービスの完全なセットアップと構成をガイドし、監視ソリューションをシームレスに構築します。このチュートリアルを研究することにより、完全に動作する監視設定を実現します
