MySQLストレージエンジン紹介(MyISAM、InnoDB)

3265 ワード

文書ディレクトリ
  • 一、MySQLストレージエンジン
  • 二、MyISAM紹介
  • 三、MyISAM適用の生産シーン例
  • 四、InnoDBの特徴紹介
  • 五、InnoDB適用生産シーン分析
  • 六、企業がストレージエンジンを選択する根拠
  • 7、ストレージエンジン
  • の修正
    一、MySQLストレージエンジン
  • MySQLのデータは様々な異なる技術でファイルに保存され、それぞれの技術は異なる記憶メカニズム、インデックス技術、ロックレベルを使用し、最終的に異なる機能と能力を提供し、これらの異なる技術とセットの機能はMySQLで記憶エンジン
  • と呼ばれている.
  • ストレージエンジンは、MySQLがファイルシステムにデータを格納する格納方式または格納フォーマット
  • である.
  • MySQLでよく使用されるストレージエンジン
  • MyISAM
  • InnoDB
  • MySQLデータベース中額コンポーネント、実際のデータI/O操作
  • を実行する
  • MySQLシステムでは、ストレージエンジンはファイルシステムの上にあり、データがデータファイルに保存される前にストレージエンジンに転送する、その後、各ストレージエンジンのストレージフォーマットに従ってストレージ
  • を行う.
    二、MyISAM紹介
  • MyISAMはトランザクションをサポートせず、外部キー
  • もサポートしません.
  • アクセス速度が速い
  • トランザクションの整合性には
  • は必要ありません.
  • MyISAMディスク上に3つのファイル
  • として格納
  • .frmファイルストレージテーブル定義
  • データファイルの拡張子は.MYD(MYData)
  • インデックスファイルの拡張子は.MYI(MYIndex)
  • 表レベルのロック形式であり、データは更新時に表
  • 全体をロックする.
  • データベースは、読み書き中に
  • をブロックします.
  • は、データ書込の過程でユーザデータの読み出しをブロックする
  • である.
  • はまた、データの読み出し中にユーザのデータ書き込みをブロックする
  • である.
  • データは単独で書き込みまたは読み取り、速度プロセスが速く、占有リソースが比較的少ない
  • である.
  • MyISAMがサポートするストレージフォーマット
  • 静的テーブル
  • ダイナミックテーブル
  • 圧縮テーブル
  • 三、MyISAMが適用する生産シーンの例
  • 会社の業務は事務サポート
  • を必要としない
  • 一方的にデータを読み書きする比較的多いトラフィック
  • .
  • MyISAMストレージエンジンデータの読み書きが比較的頻繁なシーンは
  • に適していない.
  • は、比較的低いトラフィック
  • への読み書き同時アクセスを使用する.
  • データ修正が比較的少ない業務
  • データ業務の整合性に対する要求が非常に高くない業務
  • サーバハードウェアリソースの比較差
  • 四、InnoDBの特徴紹介
  • は、4つのトランザクション独立性レベル
  • をサポートします.
  • 行レベルはロックするが、全テーブルスキャンは依然としてテーブルレベルロック
  • である.
  • 読み書きブロックトランザクション独立性レベルに関連する
  • は、インデックスとデータ
  • を非常に効率的にキャッシュできます.
  • テーブルとプライマリ・キーは、
  • をクラスタ化して格納.
  • は、oracleデータベース
  • のようなパーティション、表領域をサポートします.
  • は外部キー制約をサポートし、5.5前は全文インデックスをサポートしなかった.5.5後のバージョンは
  • をサポートした.
  • ハードウェアリソースに対する要求が比較的高い場合
  • .
    五、InnoDB適用生産シーン分析
  • ビジネスに必要なトランザクションのサポート
  • 行レベルのロックは、高同時性に優れていますが、クエリがインデックスによって
  • を完了することを確認する必要があります.
  • ビジネスデータの更新が頻繁なシーン(フォーラム、微博など)
  • 業務データの一致性の要求が高い(例えば、銀行業務など)
  • ハードウェアデバイスのメモリは比較的に大きく、lnnodbの比較的良いキャッシュ能力を利用してメモリの利用率を高め、ディスクのIO圧力
  • を減らす.
    六、企業がストレージエンジンを選択する根拠
  • は、各記憶エンジンが提供するコア機能およびアプリケーションシーン
  • を考慮する必要がある.
  • でサポートされているフィールドおよびデータ型
  • すべてのエンジンで共通のデータ型
  • がサポートされています.
  • ただし、バイナリオブジェクト
  • などの他のフィールドタイプがすべてのエンジンでサポートされているわけではありません.
  • ロックタイプ:異なるストレージエンジンは異なるレベルのロック
  • をサポートする.
  • 行ロック
  • テーブルロック
  • インデックスのサポート
  • データベース内のデータの検索と復元におけるインデックスの確立により、パフォーマンスが大幅に向上する
  • .
  • 異なるストレージエンジンが異なるインデックス作成技術
  • を提供する.
  • インデックス
  • はサポートされていないストレージもあります.
  • トランザクションのサポート
  • は、テーブルに情報を更新挿入する間の信頼性を高める
  • である.
  • は、エンタープライズ・ビジネスがトランザクションをサポートするか否かに応じてストレージ・エンジン
  • を選択することができる.
    七、ストレージエンジンの修正
    方法1:alter table修正
    alter table table_name engine=  ;
    

    方法2:myを修正する.cnf、デフォルトのストレージエンジンを指定し、サービスを再起動
    default-storage-engine=InnoDB
    

    方法3:create tableテーブル作成時にストレージエンジンを指定する
    create table    (  ) engine=  
    

    方法4:Mysql_convert_table_format変換ストレージエンジン(5.5以下のバージョンのみ)
    Mysql_convert_table_format -user=root -password=   -sock=/tmp/mysql.sock -engine=        
    

    t変換ストレージエンジン(5.5以降のみ)**
    Mysql_convert_table_format -user=root -password=   -sock=/tmp/mysql.sock -engine=