MySQLのInnoDBストレージエンジン


--MySQL構造は、2つの部分から構成さ
1.MySQLサーバー層
2.ストレージエンジン層

- 注:以前のストレージエンジン層へのMySQLサーバ層に属し、

MySQLの5.1 5.7へのバージョンは何の大きな変化はありません、唯一の変化は、ストレージエンジンの小型版である、MySQLサーバ層が変更されていません

5.5を含むMySQLの5.5後、デフォルトのストレージエンジンInnoDBのあるテーブルに基づいて、(InnoDBのエンジン=)が、バージョン5.5より前に、デフォルトのストレージエンジンはMyISAMテーブルである
5.5より前のバージョンので、もし必要がテーブルを作成する際に、エンジン= InnoDBのを指定し、またはストレージエンジンのテーブルのうち、作成することはMyISAMのある
基本的には5.5の後に5.1であり、期間のための踏み台です

 

MySQLのコンポーネント:
1.コンポーネント接続プール
2.管理サービスおよびツールアセンブリ
3.SQLインターフェースコンポーネント
4クエリアナライザコンポーネント
5オプティマイザコンポーネント
緩衝成分6.
7プラガブルストレージエンジン
物理ファイル8

ストレージエンジンはテーブルの上ではなく、データベースに基づいています

コアは、ストレージエンジンのMySQLであります

      MySQLのテーブルのストレージエンジン

MySQLのプラガブルなストレージエンジンアーキテクチャは、標準的な管理とサービス支援の範囲を提供
しないのデータベースに、テーブルに基づいて、ストレージエンジンを
特定の用途に応じて適切なストレージエンジンの選択

OLTP:オンラインオンライントランザクションシステム、---読み取りおよび書き込み少ない、など:電気の供給者は、行レベルのロック、外部キーのサポートサポート
ライン分析システム、---接触の小さなチャンス:OLAPを

      ストレージエンジンの様々なタイプのご紹介

、InnoDBストレージエンジン
オンライン・トランザクション処理(OLTP)アプリケーションの側面、1.サポートサービスは、外部キーの行レベルのロック、サポートサポートする
マルチバージョン同時実行制御MVCCによる高並行性を達成するために、標準SQLを達成するために、2を4分離レベル(デフォルト反復)
3.挿入バッファ(挿入バッファ)を提供し、二次ライト(二重書き込み)、適応ハッシュインデックス(AHI)、先読み(先読み)
テーブルに格納されたデータのための4、のInnoDBクラスタ化された使用;主キーテーブル定義ならば、各テーブルは、主キー記憶装置の順に格納され、それが表示されていない、
InnoDBは主キーとして、それぞれ1行分の6バイトの行IDを生成します

1>サポートサービス、行レベルのロッキングをサポート外部キー
2>マルチバージョン同時実行制御(MVCC)を達成する高い並行性
3> SQL 4つの標準の分離レベル:反復可能読み取り、非反復可能読み取り、シリアル読み出し、ダーティ・リード
4> InnoDBの三つの特徴:INSERTバッファ、ダブル書き込み、AHI
5>それぞれの新しいテーブルの主キーを指定してください、システムが自動的に作成させてください

二、MyISAMストレージエンジン

1.トランザクション、テーブルロック、オンライン分析処理のOLAPのフルテキストインデックス、動作速度をサポートしていません
MYI、MYD及びMYI組成によって2 MyISAMストレージエンジンのテーブルをデータファイルを格納するために使用さMYDインデックスファイル格納するために使用される
3. MySQLをデフォルト256T単一テーブルのデータによって支持初めのMySQL 5.0
LURほとんどのデータベースを使用してMyISAMテーブルのストレージエンジンのための4を、MySQLデータベースのキャッシュのみのインデックスファイル、キャッシュデータファイルが完了するまでにオペレーティングシステム自体に引き渡され、データ・キャッシュ・アルゴリズムは異なります

1>取引、テーブルレベルロック、OLAPライン分析システムのフルテキストインデックス、動作速度をサポートしていません
2> MYDストアのデータファイルを、MYIインデックスファイル保存
最初から3> MySQL5.0のが、MySQLはテーブルの256T単一のデフォルトのデータをサポートしています
4> MyISAMテーブルのストレージエンジンのために、MySQLデータベースのキャッシュのみのインデックスファイル、キャッシュデータファイルは、データ・キャッシュ・アルゴリズムLURを使用して、完了するために、オペレーティングシステム自体にデータベースのほとんどは異なる引き渡されます

三、NDBストレージエンジン
データベースは、直線性性能、可用性を向上させることができるメモリのすべてのデータ1.ので、プライマリ高速キールックアップの速度は、高性能クラスタシステム
のストレージエンジン2.NDB運転に接続さは、MySQLデータベースレイヤで行われます代わりに、記憶層のエンジンを実行するので、接続作業は、大規模で複雑なネットワークオーバーヘッドを必要とします

MySQLクラスタの使用は、これはMySQLのクラスタを選択する理由(電力会社が使用されない)ではない、NDBストレージエンジン、ストレージエンジンは、直接スキップデータを呼び出しています

四、メモリストレージエンジン
データベースの再起動またはクラッシュが発生した場合、メモリに記憶されたテーブル内のデータ1、テーブル内のデータは失われ、適切な一時データ記憶一時表は、データウェアハウスのディメンションテーブル、
デフォルトのハッシュインデックスがありませんB-treeインデックス

2.のみテーブルロックをサポートして可変長フィールドのvarchar型を格納する際、同時パフォーマンスの差は、テキストおよびBLOB型をサポートしていない、安定したフィールドのchar型のやり方に従った、メモリ空間の無駄

- 注:ビットメモリテーブルを理解し、一時テーブル、貧しい同時パフォーマンス、メモリ空間が無駄になっています

五、アーカイブストレージエンジンが唯一の挿入とクエリを選択サポートしています。

六、連合ストレージエンジンは、リモートのMySQLデータベースサーバー上のテーブルにデータを格納しますが、ポイントはありません

七、マリア・ストレージ・エンジン、キャッシュデータとインデックスファイル、ラインロック、提供MVCC機能、トランザクションと非トランザクションのセキュリティオプションのサポート、
および優れたハンドリング性能文字タイプBLOB

マリアストレージエンジンは、mariadbデフォルトストレージエンジンであり、InnoDBが同じである、MVCC(マルチバージョン同時実行制御)

 

---要約
InnoDBの三つの特徴:
バッファ(挿入バッファ)を挿入し、二次ライト(二重書き込み);適応ハッシュインデックス(AHI)

クラスタストレージ集まります

本番環境では、システムのパフォーマンスを消費し、それ以外のシステムはUIDを生成します、主キーを作成するために、新しいテーブルを指定する必要があります。

InnoDBの同時実行強いがあるので、行レベルのロック

MyISAMテーブル:データファイルを格納するMYD; MYIインデックスファイル、キャッシュディスク上の唯一のインデックスデータまたはファイル
のInnoDB:IBDすべてのファイルが一緒に置かれ、データとインデックスがキャッシュされるので、速いスピードのInnoDB


[ルート@ RC-mysqlのmysqlの]#LLのユーザー。*
-rw-RW ---- 1つのmysql mysqlの10684 2016年4月28日user.frm
-rw-RW ---- 1つのmysql mysqlの7500 5月22日午後04時44分ユーザー。 MYD
-rw-RW ---- 1つのmysql mysqlの4096 5月22日16時44分user.MYI

FRMテーブル構造である、とのInnoDB MyISAMテーブルに接尾辞ある
MYDのMyISAMストレージエンジンのデータファイルは、
インデックスファイルのためMYI MyISAMストレージ
拡張IBD、データとインデックスInnoDBストレージエンジン内のファイルに
データがインデックス化されたInnoDBテーブル、インデックスがありますデータ


---概要:
のはInnoDBとMyISAMの差
1.トランザクション(InnoDBのサポート、MyISAMテーブルサポートされていない)
2ロック粒度(InnoDBの行レベルロック、MyISAMテーブルレベルのロック)
3.同時(InnoDBのサポートマルチバージョン並行性制御-MVCCは、取得します高い同時実行)
4.キャッシュファイル(InnoDBのキャッシュデータとインデックス、MyISAMテーブルのみキャッシュインデックス、キャッシュされていないデータをする)
5.ファイル名の拡張子(InnoDBは:IBD; MyISAMテーブルMYD MYI)
5.6後の6.5.6は、フルテキストインデックスをサポートして含まれていますが、ではありません中国の支援(InnoDBが前に5.6でフルテキストインデックスをサポートしていません)
---- 5.5、5.5を含むが、デフォルトのストレージエンジンInnoDBのです
----(エンジン= InnoDBテーブル)が、以前のバージョン5.5、ストレージエンジンは、MyISAMテーブルですテーブルに基づいて
実行7.innodb 削除行レベルのロックため、削除されたラインによってタイムラインを、テーブルは削除されません
、その後のMyISAMテーブル全体を削除することで、同じテーブルのテーブル構造を再作成
8.selectカウント(*) ;
MyISAMテーブルがありますので、InnoDBはより高速であるカウンタの着信がある場合、データは、統計カウンタのInnoDBテーブルがあることが必要である全表スキャン

----問題
1.MySQLは、フルテキストインデックスをサポートしていませんか?
5.6は、フルテキストインデックスをサポートするために始めたが、クエリ内の唯一の非中国の
2.MySQL速い彼らはトランザクションをサポートしていないため?
InnoDBのサポートサービスは、
テーブルが百万以上である場合には3、MySQLのパフォーマンスが劇的に低下でしょうか?
それは、しかし、あなたは、テーブルには百万、サブテーブルより大きい任せることはできない。
あるいは、Baiduのアーキテクチャとしての構造、(プロキシモード)に

 

おすすめ

転載: www.cnblogs.com/ss-33/p/11237897.html