ねこきっくぱんちのメモ帳

webの勉強メモです。 HTML,CSS,JavaScript,PHP,Illustrator,Photoshopなど。

MySQL018 トランザクション

chap13

■ストレージエンジン
MySQLには大きく2つの機能に分かれる。
1)フロント処理(「接続する」「SQL内容を事前調査する」など)
2)バック処理(フロントの指示により、実際の検索やファイル操作などを行う)
2の部分をストレージエンジンという。

■ストレージエンジンの種類
テーブルごとにエンジンの種類を指定可能
MyISAM(ver5.1までのデフォ。トランザクション未対応)
InnoDB(5.5以降。トランザクション対応。) ★ほぼこれ利用
・ISAM(MyISAMの原型。古い。)
・MEMORY(データを全てメモリ上に管理。動作が高速)
・MERGE(MyISAMの複数テーブルを1つのものにして扱う)

・利用できるエンジンの確認
show engines;

■コマンド
・ストレージエンジンの確認
show create table tb10; //ENGINE=InnoDB

・ストレージエンジンの変更
alter table tb10 ENGINE=MyISAM;
alter table tb10 ENGINE=InnoDB;


トランザクション
・複数の処理をまとめて扱う機能のこと。
・結果をDB反映させることを「コミット」
・結果を反映せず戻すことを「ロールバック

トランザクション開始
start transaction;

ロールバック
rollback;

・コミット
commit;

■自動コミット機能
基本はONになっているため、常にコマンド後にcommitが実行されてる。
・offにする
set autocommit=0;

・onにする
set autocommit=1;

・途中終了した場合
create table tran (a int);
insert into tran values(100);
select * from tran;

start transaction;
update tran set a=777;
MySQLモニタ終了
→値が100に戻ってることを確認

■参考
本:基礎からのMySQL