MySQLを使い始めて間もない人がよく陥る罠の中に、気づくと使ってるストレージエンジンがMyISAMだった!ということがある。デフォルトのストレージエンジンはMyISAMなので、MySQLに詳しくない人たちが比較的陥りやすい罠なのだ。そもそもストレージエンジンという概念自体がMySQL独自のものなので仕方のない話である。MyISAMは素晴らしいストレージエンジン(たとえばこのYahoo!の中の人による投稿で言われているように)であるが、長所もあれば短所もある。例えば、 トランザクション対応ではない。 クラッシュセーフではない。 更新と参照が入り乱れた場合の同時実行性能がよくない。 テーブルが大きく(数億行とか)なるとINSERTの性能が劣化する。 などなど。特に前者の2つが問題で、アトミックな操作が必要なところでロジックを実装出来なかったり、サーバがクラッシュした時にデータがお亡くなりにな
![MyISAMからInnoDBへ切り替えるときの注意点](https://cdn-ak-scissors.b.st-hatena.com/image/square/43a7503923f34fab27b0677da801e1b95ad34697/height=288;version=1;width=512/https%3A%2F%2Fblogger.googleusercontent.com%2Fimg%2Fb%2FR29vZ2xl%2FAVvXsEjOcP9-xC0VQ5b6lyNiky2pAvXe3pfq6WzFuLuVLpkXsO_PczPpQJL-ZevtqHNoGhMsHg_zhxrXz8zv8lTtNzxtbGfb6Mk-Zm4-oA6SBZDaOmxdLgS9CmGqIy4kR_c6LIrK6jjJPeRSsPs%2Fs800%2Flogo.png)