Mysqlデータベースストレージエンジン


-ストレージエンジンとは?リレーショナル・データベース・テーブルは、情報を格納および整理するためのデータ構造であり、Excelのスプレッドシートと同様に、行と列からなるテーブルとして理解できます.ある表は簡単で、ある表は複雑で、ある表はまったく長期的なデータを格納するために使われていないで、ある表は読み取る時とても速くて、しかしデータを挿入する時とても悪いです;実際の開発では、さまざまなテーブルが必要になる可能性があります.異なるテーブルは、異なるタイプのデータを格納することを意味し、データの処理にも違いがあります.MySQLにとって、多くの種類のストレージエンジンを提供しています.データ処理のニーズに応じて、異なるストレージエンジンを選択して、MySQLの強力な機能を最大限に利用することができます.
. MySQL                 (    ) 。                     、    、                     。         ,              ,             。

1.MyISAM MyISAMテーブルはオペレーティングシステムとは独立しており、WindowsサーバからLinuxサーバに簡単に移植できることを示しています.MyISAMエンジンのテーブルを作成するたびに、ローカルディスクに3つのファイルが作成され、ファイル名が表示されます.例えば、MyISAMエンジンのtbを構築しました.Demoテーブルは、次の3つのファイル1を生成する.tb_demo.frm、ストレージテーブル定義;2.tb_demo.MYD、データを格納する;3.tb_demo.MYI、インデックスを格納します.MyISAMテーブルはトランザクションを処理できません.これは、トランザクションに必要なテーブルがあり、MyISAMストレージエンジンを使用できないことを意味します.
MyISAMストレージエンジンは、以下の場合に特に適しています.1.密なテーブルを選択します.MyISAMストレージエンジンは、大量のデータをフィルタリングする際に非常に迅速であることが最も優れた利点です.2.全文索引
  • InnoDB InnoDBは、多くのインターネット企業で使用されている堅牢なトランザクション型ストレージエンジンであり、ユーザーが非常に大きなデータストレージを操作するための強力なソリューションを提供しています.私のパソコンにインストールされているMySQL 5.6.13版、InnoDBはデフォルトのストレージエンジンです.InnoDBには、行レベルのロックと外部キーの制約も導入されており、以下の場合、InnoDBを使用するのが最も理想的な選択である:1.密なテーブルを更新します.InnoDBストレージエンジンは、多重同時更新要求の処理に特に適している.2.事務.InnoDBストレージエンジンは、トランザクションをサポートする標準MySQLストレージエンジンです.3.災害復旧の自動化他のストレージエンジンとは異なり、InnoDBテーブルは災害から自動的にリカバリされます.4.外部キー制約.MySQLが外部キーをサポートするストレージエンジンはInnoDBのみです.5.自動増分列AUTO_をサポートINCREMENT属性6.ホット・バックアップ
  • InnDBのデフォルトレベルは繰り返し読み取り可能であり、ギャップロックポリシーによって幻読みの発生を防止します.3.MEMORY MySQL Memoryストレージエンジンを使用する出発点は速度です.最も速い応答時間を得るために採用される論理記憶媒体はシステムメモリである.メモリにテーブルデータを格納すると、確かにパフォーマンスが向上しますが、mysqldデーモンがクラッシュすると、すべてのMemoryデータが失われます.速度を得ると同時にいくつかの欠陥ももたらした.Memoryデータテーブルに格納データには長さ不変のフォーマットが要求されるが、これはBLOBやTEXTのような長さ可変のデータ型は使用できないことを意味し、VARCHARは長さ可変のタイプであるが、MySQL内部では長さ固定不変のCHARクラス型として使用することができる.使用する表レベルのロックは、大きな同時挿入には適していません.Memoryストレージエンジンは、一般的に次のような場合に使用されます:
  • 1.ターゲットデータは小さく、非常に頻繁にアクセスされます.メモリにデータを格納するため、メモリの使用になります.パラメータmax_heap_table_sizeはMemoryテーブルのサイズを制御し、このパラメータを設定すると、Memoryテーブルの最大サイズを制限できます.
  • 2.データが一時的で、すぐに使用できる必要がある場合は、メモリ・テーブルに保存できます.
  • 3.Memoryテーブルに格納されているデータが突然失われると、アプリケーション・サービスに実質的な悪影響を及ぼすことはありません.
  • 4.郵便番号や州Memoryなど、検索またはマッピングに使用されるテーブルは、ハッシュインデックスとBツリーインデックスを同時にサポートします.Bツリーインデックスがハッシュインデックスより優れているのは、部分クエリーとワイルドカードクエリーを使用するか、<、>および>=などのオペレータを使用してデータマイニングを容易にすることです.ハッシュ・インデックスの「等しい比較」は非常に速いが、「範囲比較」の速度はずっと遅いため、ハッシュ・インデックス値は=と<>のオペレータに適しており、<または>オペレータに適しておらず、order by句にも適していない.4.MERGE MERGEストレージエンジンは、他のエンジンよりも優れていないが、場合によっては非常に有用なMyISAMテーブルのセットの組合せであり、これらのMyISAMテーブルの構造は完全に同じでなければならない.はっきり言って、Mergeテーブルはいくつかの同じMyISAMテーブルの重合器です.Mergeテーブルにはデータがありません.Mergeタイプのテーブルに対してクエリー、更新、削除操作を行うことができます.これらの操作は実際には内部のMyISAMテーブルに対して操作を行います.Mergeはエンジンの使用シーンを格納します.5.ARCHIVE Archiveはアーカイブの意味で、アーカイブ後の多くの高度な機能はサポートされなくなり、最も基本的な挿入とクエリーの2つの機能だけをサポートします.MySQL 5.5版以前はArchiveではインデックスはサポートされていませんでしたが、MySQL 5.5以降のバージョンではインデックスがサポートされ始めました.Archiveはzlib圧縮ライブラリを使用し、要求されたレコードをリアルタイムで圧縮する圧縮メカニズムが優れているため、倉庫としてよく使用されています.各selectクエリはすべてスキャンされます.適合場所:1.ログとデータ収集クラスアプリケーションに適しています.2.行レベルロックと専用バッファをサポートし、高同時挿入を実現できる.6.CSVエンジンは、通常のcsvファイルをmysqlのテーブルとして処理できますが、インデックスはサポートされていません.データのコピーや焼き出しができます.7.Federatedエンジンfederatedエンジンは、他のMysqlサーバにアクセスするエージェントであり、リモートmysqlサーバのクライアント接続を作成します.8.サーバーにどのような検索エンジンshow enginesがあるかをどのように表示しますか?9.適切なストレージエンジンをどのように選択するか(1)選択基準は、(2)トランザクションをサポートする必要があるかどうか、(3)ホットスペアを使用する必要があるか.(4)クラッシュ回復:クラッシュを受け入れることができるか;(5)外部キーのサポートが必要かどうか;10.変換テーブルのエンジン
  • alter table mytable engine=Indbの利点:任意のストレージエンジンの欠点を適用する:実行時間が長く、行ごとにコピーし、IOを消費する.
  • mysqldumpツールを使用してエクスポートをインポートおよびエクスポートし、テーブル文を作成するときのストレージエンジンを変更します.
  • insertを使用する作成と挿入...select文