MyISAMとInnoDBの違い

Anonim

MyISAMとInnoDB

MyISAMとInnoDBは、ほとんどのデータテーブルで最も一般的に使用されるMySQLエンジンの2つです。これらの2つのMySQLエンジンには、それぞれ長所と短所があり、ユーザーが自分の選択をするための要素としての、あるいはそうでない可能性のある利点と相違点があります。以下は、2つのエンジン間で観察される違いです。これらの違いは、機能とパフォーマンスによって異なる場合があります。

<! - 1 - >

2つの間で、InnoDBはより新しいリリースエンジンですが、MyISAMは古いエンジンであり、しばらくの間存在しています。 InnoDBの現在の性質上、MyISAMとは対照的に、かなり単純なデータベースプログラムです。 InnoDBを覗き見ると、厳密なデータ整合性が提供され、MyISAMは緩やかなデータ整合性を提供します。

InnoDBは、主にデータの完全性のために作成される関係のため、選択のデータベースエンジンとして好まれます。関係の制約とトランザクションが発生することにより、提供されるデータの完全性が貴重な機能になります。また、InnoDBは、行レベルのロックを極端に利用するため、テーブルの挿入と更新を高速化します。注目されている唯一の滞留は、ある行に変更が加えられたときです。

<! - 2 - >

InnoDBの複雑な性質のため、新規ユーザーがプログラムをうまく活用するのは面倒です。これはMyISAMが提供する最も良い違いです。 InnoDBとは対照的に比較的簡単であるため、大部分の初回のデータベースエンジンユーザーは、InnoDBのものを上回るMyISAMの使用を選択します。 MySQLエンジンの初心者は、これがすべて考慮されるので、テーブル間に確立する必要がある外部関係について心配する必要はありません。

<! InnoDBとは対照的に、MyISAMの構築が簡単であるため、使いやすさが評価されると、実装がはるかに簡単で、はるかに高速になることがわかります。 InnoDBは特に大きなRAMを消費します。不具合のないシステムを保証するため、MySQLを定期的に使用しない場合、InnoDBを実行するMySQLエンジンをオフにすることが一般的に推奨されています。システムクラッシュが発生した場合、InnodbはMyISAMとは対照的にデータを回復する可能性が高くなります.MyISAMはデータ回復時に非常に貧弱です。

読取り集約型テーブルまたは選択テーブルを扱う場合、MyISAMは完全な索引作成につながるので、これについての良い読書を提供します。これは全文索引作成を提供しないInnoDBとはかなり異なっています。 InnoDBは、MyISAMとは対照的に、頻繁な挿入と更新を必要とする高速なテーブルを提供します。これは、挿入または更新のためにテーブルがロックされているためです。もう一つの大きな違いは、MyISAMはInnoDBがトランザクションをサポートしていないことです。これは、銀行やその他の重要なデータに依存しないアプリケーションには使用できないため、MyISAMの大きな失敗です。

結論として、InnoDBは、頻繁な更新や挿入が必要な重大な状況に必要なデータベースエンジンに最も適しています。一方、MyISAMは初心者で、MySQLエンジンの使い方を学びたい場合には最適です。 MyISAMは、多くのデータの整合性を必要とせず、主にデータの表示用であるアプリケーションでの使用をお勧めします。

要約:

- MyISAMは古いものであり、InnoDBは新しいものです。

- MyISAMはよりシンプルで、構築するInnoDBの複雑さがあります。

- MyISAMとは対照的に、厳密なデータの整合性がInnoDBで必要です。

- InnoDBでは行レベルの更新と挿入のロックが可能ですが、MyISAMではテーブルレベルのロックが可能です。

- InnoDBがトランザクションの使用を許可している間、MyISAMはトランザクションを欠いています。

- InnoDBはMyISAMとは対照的に、より良いデータ回復を提供します。