人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Mysql排他制御が必要かどうか教えてください。
PHPでmysqlに1つのテーブルだけの掲示板を作るのですが、複数人が同時に書き込んだり削除、修正があり得ます。
1つのレコードに対しては書き込み本人の1人だけが修正削除できるので1レコードを同時に更新することはないです。
本人の書き込みだけを一気に削除する処理もつけます。
利用者は40人前後ですが利用時間が集中するかもしれないです。
これまで1つのPCから更新するものしか作った事がなく、ストレージも気にする事無く
デフォルトのMyISAMしか使っておらず排他制御を考えたことがありませんでした。
今回のような1つのレコードの同時更新はないけど、1つのテーブル内には同時に
書き込みや削除を行う場合、排他制御は必要でしょうか?
テーブルのストレージをInnoDBにする必要ありでしょうか?
InnoDBにしてなおかつ、ロック等をかけるのが基本でしょうか?
教えて頂ければ助かりますm(__)m

●質問者: cafet
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● degucho
●100ポイント ベストアンサー

まずMyISAMはテーブルロックが行われるため同時書き込みができません
(待ちが発生します)
現行バージョンはデフォルトがInnoDBになっていますし
特別な理由(MyISAMのメリットが必要)がない限りInnoDBを選択すべきと思います。
ロジカルな排他制御については、対象レコードについて
「書き込み本人の1人だけが修正削除」が担保されるなら
とりあえずは不要です。


cafetさんのコメント
ありがとうございます、安心しました。 現行のデフォルトがInnoDBというのも知りませんでした。。 コメントしてくれたcawbridge2013さんもすごく参考になりました。 便利なものを使わせてもらってるとつくづく思います。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ