MySQL_ストレージエンジンの紹介

2855 ワード

この記事はMyth_Ghostオリジナル作品.転載禁止!!!
MyISAMサポートインデックスタイプ(システムテーブル)
MyISAMテーブルはデータ圧縮をサポートする
データがテーブルに書き込まれた後、変更する必要がない場合は、圧縮操作を行うことができます.読み込み時には、テーブル全体を解凍する必要がなく、行ごとに解凍できます.
myisampack -b -f xxxxx.MYI

圧縮後は書き込み操作に入ることができず、読み取り操作しかできません.
制限:
MySQL 5.0以前のデフォルトテーブルサイズは4 G
大きなテーブルを変更するにはMAX_を変更する必要がありますRowsとAVG_ROW_LENGTH.表を建て直す.
適用シーン:
非トランザクションアプリケーション
データウェアハウス、レポート
読み取り専用クラスアプリケーション
共有ロック間のブロックは発生しません
スペースクラスの適用
スペース関数のサポート
MySQL_Innodb最適化
Innodbはインデックスタイプをサポート(オンラインホットスペアをサポート)
Innodb表領域によるデータ格納
innodb_file_per_table
変更コマンド:
set global innodb_file_per_table = off;

on:独立表領域:tablename.ibdは各テーブルに独立したテーブルスペースを作成する
​ 1.optimize table
​ 2.頻繁な書き込みに適しています
off:システム表領域:ibdataX
​ 1.ディスクフラグメント
システムの表領域は増加し続け、削除後は領域は解放されません.ホットバックアップ方式:すべてのデータベースのInnodbテーブルをエクスポートし、innodb関連のテーブルスペースファイルを削除した後、mysqlサーバを再起動し、テーブル構造の再構築を行い、データをインポートします.
​ 2.頻繁な書き込みには適していません
テーブル転送の手順
​ 1.mysqldumpを使用したエクスポート
​ 2.mysqlサービスを停止し、パラメータを変更し、innodbを削除
​ 3.Mysqlサービスを再起動し、innodbシステムの表領域を再構築
​ 4.データの再インポート
ロックのタイプ
共有ロック(リードロック)は互いにブロックされません
排他ロック(書き込みロック)
ロックの粒度
表レベルロックMySQLサーバ実装
行レベルロックInnoDB実装
ブロックとデッドロック
ブロッキング
デッドロック少量デッドロックシステムは自動的に処理できます
共通ストレージエンジン
csvファイルシステムストレージ
データはテキストでファイルに格納されます
特徴:
  • CSV形式でデータ記憶
  • を行う.
  • すべてのカラムはNULL
  • でない必要があります.
  • インデックスはサポートされていません
  • は大きなテーブルに適しておらず、オンライン処理
  • に適していない.
  • データファイルを直接編集できます
  • テキスト内容を保存

  • 適用シーン:
  • は、データ交換のための中間テーブル
  • として好適である.
    Archiveストレージエンジン
    特徴:
  • zilibでテーブルデータを圧縮し、ディスクI/Oがより少なく、占有スペースが小さい
  • データは、ARZが接尾辞であるファイルに格納される
  • .
  • insertおよびselectオペレーション
  • のみをサポート
  • は、自己ID列にインデックス
  • を追加することのみを許可する.
    適用シーン:
  • ログおよびデータ収集クラスアプリケーション
  • Memoryストレージエンジン
    特徴:
  • はHEAPストレージエンジンとも呼ばれるので、データはメモリに保存されます.テーブル構造はハードディスク(HDD)にあり、データ(インデックスとデータ)はメモリにあります.
  • はHASHインデックス(等値ルックアップに適合)とBTreeインデックス(範囲ルックアップに適合)
  • をサポートする.
  • すべてのフィールド固定長varchar(10)=char(10)
  • BLOGやTEXTなどの大きなフィールドタイプ
  • はサポートされていません.
  • テーブルレベルロック
  • テーブルの最大サイズはmax_heap_table_sizeパラメータ決定.デフォルト16 MB、
  • を設定する必要があります
    紛らわしい概念:
  • Memoryストレージエンジンテーブル
  • テンポラリ・テーブル(現在のセッション・テーブルのみ表示)
  • システム使用テンポラリ・テーブル(内部テンポラリ・テーブル)
  • 使用制限超過MyISAMテンポラリテーブル
  • 使用制限を超えないMemoryテーブル
  • create temporary tableによって確立されたテンポラリテーブル

  • 適用シーン:(プライマリ・メモリがInnodbデータベースから使用されると、プライマリ・データベースが再起動され、データベースから再構築されます.)
  • は、郵便番号領域の対応するテーブル
  • のようなテーブルを検索またはマッピングするために使用される.
  • データ解析で生成する中間テーブル
  • を保存するために使用される.
  • 周期的集約データをキャッシュする結果表
  • Federatedストレージエンジン(デフォルト禁止)
    特徴:
  • は、リモートMySQLサーバ上のテーブルにアクセスする方法
  • を提供します.
  • ローカルはデータを保存せず、データはすべてリモートサーバ上に配置される
  • .
  • ローカルでは、テーブル構造とリモートサーバの接続情報
  • を保存する必要がある.
    適用シーン:
  • 時折の統計分析および手動クエリー