検索
ホームページデータベースmysql チュートリアルMySQLストレージエンジンの詳しい説明

MySQLストレージエンジンの詳しい説明

Jun 18, 2019 pm 05:40 PM
mysqlストレージエンジン

MySQLストレージエンジンの詳しい説明

1. MySQL で一般的に使用されるストレージ エンジンと機能

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

MySQL バージョン 5.5 以降、MySQL のデフォルトの組み込みストレージ エンジンすでに InnoDB となっており、その主な機能は次のとおりです:

(1) 災害復旧が比較的優れている;
(2) トランザクションをサポートします。デフォルトのトランザクション分離レベルは反復性であり、MVCC (同時バージョン管理) を通じて実装されます。
(3) 使用されるロック粒度は行レベルのロックであり、より高い同時実行性をサポートできます;
(4) 外部キーをサポートします;
(5) いくつかのホット バックアップ ツールを使用してオンライン ホット バックアップをサポートします;
(6) InnoDB にはバッファ管理があり、クエリを高速化するためにバッファ プールを通じてすべてのインデックスとデータがキャッシュされます;
(7) InnoDB タイプのテーブルの場合、データの物理的な構成形式はクラスタリングです。クラスターテーブル。すべてのデータは主キーに従って編成されます。データとインデックスはまとめられ、番号 B のリーフ ノードに配置されます;

2. MyISAM ストレージ エンジン
バージョン 5.5 より前では、MyISAM が MySQL のデフォルトのストレージ エンジンでした。トランザクションをサポートしているため、使用シナリオは比較的少ない 主な特徴は、

(1) トランザクションをサポートしていない;
(2) 外部キーをサポートしていない です。外部キー、エラーは表示されず、外部キーのみが追加されます。キーには機能がありません。
(3) データのクエリ キャッシュはインデックスのみをキャッシュし、InnoDB のようなデータはキャッシュしません。オペレーティング システム自体のキャッシュ;
(4) デフォルトのロック粒度はテーブル レベルのロックであるため、同時実行性は非常に低く、ロックは高速で、ロックの競合が少ないため、デッドロックが発生する可能性が低くなります。サポートされています)ただし、MySQL のフルテキスト インデックスは基本的には使用されません。フルテキスト インデックスについては、ElasticSearch、Solr、Sphinx などの他の成熟したソリューションがあります。
(6) データベースが配置されているホストがダウンすると、MyISAM データ ファイルは簡単に破損し、回復が困難になります;

3. MEMORY ストレージ エンジン

はデータをメモリに保存し、Redis を使用します。 Memcached なども同様の考え方を持っており、データアクセスの高速化を図るため、主な機能としては、

(1) サポートされるデータ型が限定されており、例えば TEXT 型や BLOB 型などはサポートされていません。サポートされています。文字列型データの場合、固定のみがサポートされます。長さの行の場合、VARCHAR は自動的に CHAR 型として格納されます。

(2) サポートされるロック粒度はテーブル レベルのロックです。したがって、アクセス量が比較的多い場合、テーブル レベルのロックが MEMORY ストレージ エンジンのボトルネックになります;
(3) データはメモリに保存されるため、サーバーの再起動後にすべてのデータが失われます。
(4 ) クエリ時に一時テーブルが使用され、一時テーブルに BLOB 型および TEXT 型のフィールドがある場合、一時テーブルは MyISAM 型テーブルに変換され、パフォーマンスが大幅に低下します。
#4. ARCHIVE ストレージ エンジン

ARCHIVE ストレージ エンジンは、限られたシナリオに適しています。圧縮をサポートしているため、主にログ、ストリーミング、その他のデータのアーカイブに使用されます。主な機能:


( 1) Zlib 圧縮をサポートし、データはテーブルに挿入する前に最初に圧縮されます;

(2) SELECT および INSERT 操作のみをサポートします。保存されたデータはクエリのみが可能で、変更や削除はできません。

(3) 自動インクリメント キーのみをサポートします。インデックス、その他のインデックスはサポートされていません。

5. CSV ストレージ エンジン

データ転送トライアル、主な機能:


(1 ) データ形式は .csv 形式のテキストで、直接編集できます 保存;

(2) インポートとエクスポートが便利です。テーブル内のデータを直接 csv にエクスポートし、次のコマンドで開いてみることができます。 Excel オフィス ソフトウェア;


2. InnoDB と MyISAM の比較

1. ロック粒度の違いにより、InnoDB は MyISAM よりも高い同時実行性をサポートします;

2. InnoDB は行レベルを備えていますロックがあり、MyISAM にはテーブル レベルのロックがあるため、InnoDB は MyISAM よりもデッドロックになりやすいです。各行をロックする必要があるため、競合の可能性が高く、ロックのコストも高くなります。##3. 用語的には、バックアップとディザスター リカバリーの点で、InnoDB はオンライン ホット バックアップをサポートしており、非常に成熟したオンライン ホット バックアップ ソリューションを備えています;

4. クエリ パフォーマンスの点では、MyISAM のクエリ効率は InnoDB よりも高いです。クエリ プロセス中にデータ キャッシュを使用し、クエリ プロセスはまず行が配置されているデータ ブロックを検索し、次にデータ ブロック内で検索対象の行を配置します。MyISAM はデータが配置されているメモリ アドレスを直接配置できます。
5. SELECT COUNT(*) ステートメント、行数が数千万を超える場合、MyISAM はすぐにそれを見つけることができますが、MyISAM は行数を保存するため、InnoDB クエリが特に遅くなります。行を個別にカウントし、InnoDB では Zhu Xing が行数をカウントする必要があるため、InnoDB を使用していて行数をクエリする必要がある場合は、行数に対して次のような特別な処理を実行する必要があります: オフライン クエリとキャッシュ;
6. MyISAM のテーブル構造ファイルには、.frm (テーブル構造定義)、.MYI (インデックス)、.MYD (データ) が含まれますが、InnoDB のテーブル データ ファイルには、.ibd および .frm (テーブル構造定義) があります。

3. 適切なストレージ エンジンの選択方法
#1. 使用シナリオにトランザクション サポートが必要かどうか;

2. 高い同時実行性をサポートする必要があるかどうか、MyISAM の場合、InnoDB の同時実行性ははるかに高い;

3. 外部キーをサポートする必要があるかどうか;

4. オンライン ホット バックアップをサポートする必要があるかどうか;

5. データの効率的なバッファリング InnoDB はデータとインデックスの両方をバッファリングしますが、MyISAM はのみをバッファリングしますバッファ インデックス;
6. インデックス、異なるストレージ エンジンのインデックスは同じではありません;

MySQL 関連の技術記事の詳細については、MySQL チュートリアル 列にアクセスして学習してください。

以上がMySQLストレージエンジンの詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
MySQLの役割:WebアプリケーションのデータベースMySQLの役割:WebアプリケーションのデータベースApr 17, 2025 am 12:23 AM

WebアプリケーションにおけるMySQLの主な役割は、データを保存および管理することです。 1.MYSQLは、ユーザー情報、製品カタログ、トランザクションレコード、その他のデータを効率的に処理します。 2。SQLクエリを介して、開発者はデータベースから情報を抽出して動的なコンテンツを生成できます。 3.MYSQLは、クライアントサーバーモデルに基づいて機能し、許容可能なクエリ速度を確保します。

MySQL:最初のデータベースを構築しますMySQL:最初のデータベースを構築しますApr 17, 2025 am 12:22 AM

MySQLデータベースを構築する手順には次のものがあります。1。データベースとテーブルの作成、2。データの挿入、および3。クエリを実行します。まず、createdAtabaseおよびcreateTableステートメントを使用してデータベースとテーブルを作成し、InsertINTOステートメントを使用してデータを挿入し、最後にSelectステートメントを使用してデータを照会します。

MySQL:データストレージに対する初心者向けのアプローチMySQL:データストレージに対する初心者向けのアプローチApr 17, 2025 am 12:21 AM

MySQLは、使いやすく強力であるため、初心者に適しています。 1.MYSQLはリレーショナルデータベースであり、CRUD操作にSQLを使用します。 2。インストールは簡単で、ルートユーザーのパスワードを構成する必要があります。 3.挿入、更新、削除、および選択してデータ操作を実行します。 4. Orderby、Where and Joinは複雑なクエリに使用できます。 5.デバッグでは、構文をチェックし、説明を使用してクエリを分析する必要があります。 6.最適化の提案には、インデックスの使用、適切なデータ型の選択、優れたプログラミング習慣が含まれます。

MySQLは初心者に優しいですか?学習曲線の評価MySQLは初心者に優しいですか?学習曲線の評価Apr 17, 2025 am 12:19 AM

MySQLは初心者に適しています。1)インストールと構成、2)リッチラーニングリソース、3)直感的なSQL構文、4)強力なツールサポート。それにもかかわらず、初心者はデータベースの設計、クエリの最適化、セキュリティ管理、データのバックアップなどの課題を克服する必要があります。

SQLはプログラミング言語ですか?用語を明確にするSQLはプログラミング言語ですか?用語を明確にするApr 17, 2025 am 12:17 AM

はい、sqlisaprogramginglanguagespecializedfordatamanamanagement.1)それはdeclarative、focusingonwhattoachieveratherthanhow.2)

酸性の特性(原子性、一貫性、分離、耐久性)を説明します。酸性の特性(原子性、一貫性、分離、耐久性)を説明します。Apr 16, 2025 am 12:20 AM

酸性属性には、原子性、一貫性、分離、耐久性が含まれ、データベース設計の基礎です。 1.原子性は、トランザクションが完全に成功するか、完全に失敗することを保証します。 2.一貫性により、データベースがトランザクションの前後に一貫性を保証します。 3.分離により、トランザクションが互いに干渉しないようにします。 4.永続性により、トランザクションの提出後にデータが永久に保存されることが保証されます。

MySQL:データベース管理システムとプログラミング言語MySQL:データベース管理システムとプログラミング言語Apr 16, 2025 am 12:19 AM

MySQLは、データベース管理システム(DBMS)であるだけでなく、プログラミング言語にも密接に関連しています。 1)DBMSとして、MySQLはデータを保存、整理、取得するために使用され、インデックスを最適化するとクエリのパフォーマンスが向上する可能性があります。 2)SQLとPythonに埋め込まれたプログラミング言語とSQLalchemyなどのORMツールを使用すると、操作を簡素化できます。 3)パフォーマンスの最適化には、インデックス、クエリ、キャッシュ、ライブラリ、テーブル分割、およびトランザクション管理が含まれます。

MySQL:SQLコマンドでデータの管理MySQL:SQLコマンドでデータの管理Apr 16, 2025 am 12:19 AM

MySQLはSQLコマンドを使用してデータを管理します。 1.基本コマンドには、select、挿入、更新、削除が含まれます。 2。高度な使用には、参加、サブクエリ、および集計関数が含まれます。 3.一般的なエラーには、構文、ロジック、パフォーマンスの問題が含まれます。 4。最適化のヒントには、インデックスの使用、Select*の回避、制限の使用が含まれます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません