2010-11-22 19 views
19

対昨日(http://blogs.sitepoint.com/2010/11/19/mysql-mistakes-php-developers/)次の記事を読んで、それは次のように書いた:のMySQL - InnoDBはMyISAMの

MySQLはデータベースエンジンの数を持っていますが、MyISAMテーブルとInnoDBのに遭遇する可能性が最も高いです。

デフォルトでMyISAMが使用されます。ただし、非常にシンプルなデータベースや実験的なデータベースを作成していない限り、間違いは間違いありません。 MyISAMは、データの完全性にとって不可欠な外部キー制約やトランザクションをサポートしていません。さらに、レコードが挿入または更新されるたびにテーブル全体がロックされるため、使用量が増えるにつれてパフォーマンスに悪影響が生じます。

解決策は簡単です:InnoDBを使用してください。

私はいつもMyISAMを使用していました。これはデフォルトだったためです。どう思いますか?

phpMyAdminでInnoDBにアップグレードする場合、各テーブルを編集してinnoDBに変更するだけでいいですか、それとももっと複雑なプロセスがありますか?

ありがとうございます!

+1

をおもう?これは、[この質問]の複製です(http://stackoverflow.com/questions/20148/myisam-versus-innodb)+ [this one](http://stackoverflow.com/questions/225150/are-there)あなたのことを知っておく必要があります。 :) –

+1

myisamはデフォルトエンジンではありませんhttp://dev.mysql.com/doc/refman/5.5/en/innodb-storage-engine.html。それは、それがデフォルトのものだという事実に基づいて、アーキテクチャ/エンジンを選んだ理由についてのあなたの理論的根拠についてはどう思いますか? - ummmmコメントはありません。 –

答えて

30

はい、好きなようにアンダーウェアのようなエンジンを入れ替えることができます。単にphpmyadminで変更してください。

しかし、私はそれを変更するために変更しません。外部キーを使用する必要がありますか?それを変更。テーブルロックの代わりに行レベルのロックが必要ですか?それを変更。

MyISAMを使用する理由があることには注意が必要です。 FULLTEXTの索引作成を見てください。 InnoDBではこれを行うことはできません。

UPDATE

5.6 FULLTEXTは、同様にInnoDBテーブルのために実装されたのMySQLの通り。 はこちらです

+0

+1 - この時点で私はそれを変更するためだけにそれを変更しません。 InnoDBの機能が必要な場合にのみ変更してください。それは、私自身が非常に長い間MyISAMを使用していなかったということです。 – prodigitalson

+1

私はほとんど独占的にInnoDBを使用しています。先日のFULLTEXTインデックスが必要だったときを除いて。 ;) – Stephen

+4

こんにちは。私は私がMyISAMを使い始めるつもりだと思うのですが、それを使って過去7年間問題があったことはありません:) –

関連する問題