プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
MySQL、MyISAMとInnoDBの違い
MySQL、オートコミット関連」で前振りしましたが、
要はロールバックができなかったのです。

ちゃんと「set autocommit=0;」してんのになんでだぁ!?と思ったら
テーブルのストレージエンジンがMyISAMでした。ごふっ。
InnoDBにしとけよぉ(つд`)

と言うのが今回のきっかけ。

ほんでMyISAMとInnoDBの違いですが・・色々あります。
すっごい大雑把に言うとこんな感じφ(--)

◆MyISAM
 ・明示的にトランザクション管理ができない(常にautocommit=1状態)
 ・ロックが大雑把(テーブルロック)
 ・ぶっ壊れたときどーしよーもない
 ・検索?任せとけ!色々できまっせ!

◆InnoDB
 ・明示的にトランザクション管理ができる
 ・ロックがきめ細やか(行ロック)
 ・ぶっ壊れたとき運が良ければ何とかなる
 ・検索?あぁ、うん、人並みには。

大雑把過ぎて役に立たなかったらごめんなさい。
取りあえず今回私に関係しそうな部分は
InnoDBじゃないとトランザクション管理できねーぞな部分。

明示的にトランザクション管理(commit、rollback)したかったら
テーブルのストレージエンジンをInnoDBにして
「set autocommit=0;」しとけってことですな。

ちなみにテーブルのストレージエンジンをMyISAMからInnoDBへ変換する方法は
MySQL、MyISAMからInnoDBへの変換」をどーぞです。
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:● MySQL  thema:パソコンな日々 - genre:コンピュータ  Posted by ササキマコト 

  関連記事