MySQL_ストレージエンジンの紹介
2855 ワード
この記事はMyth_Ghostオリジナル作品.転載禁止!!!
MyISAMサポートインデックスタイプ(システムテーブル)
MyISAMテーブルはデータ圧縮をサポートする
データがテーブルに書き込まれた後、変更する必要がない場合は、圧縮操作を行うことができます.読み込み時には、テーブル全体を解凍する必要がなく、行ごとに解凍できます.
圧縮後は書き込み操作に入ることができず、読み取り操作しかできません.
制限:
MySQL 5.0以前のデフォルトテーブルサイズは4 G
大きなテーブルを変更するにはMAX_を変更する必要がありますRowsとAVG_ROW_LENGTH.表を建て直す.
適用シーン:
非トランザクションアプリケーション
データウェアハウス、レポート
読み取り専用クラスアプリケーション
共有ロック間のブロックは発生しません
スペースクラスの適用
スペース関数のサポート
MySQL_Innodb最適化
Innodbはインデックスタイプをサポート(オンラインホットスペアをサポート)
Innodb表領域によるデータ格納
innodb_file_per_table
変更コマンド:
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サーバ上のテーブルにアクセスする方法 を提供します.ローカルはデータを保存せず、データはすべてリモートサーバ上に配置される .ローカルでは、テーブル構造とリモートサーバの接続情報 を保存する必要がある.
適用シーン:時折の統計分析および手動クエリー
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ファイルシステムストレージ
データはテキストでファイルに格納されます
特徴:
適用シーン:
Archiveストレージエンジン
特徴:
適用シーン:
特徴:
紛らわしい概念:
適用シーン:(プライマリ・メモリがInnodbデータベースから使用されると、プライマリ・データベースが再起動され、データベースから再構築されます.)
特徴:
適用シーン: