したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

式神研究同好会

417くろい えのぐ:2010/07/12(月) 01:11:51 ID:cBh8.mAg0
MySQLのマニュアルを読んできましたが、基本的にはMySQLのロックは軽量でMyISAMは挿入しながらの同時読み込みも(条件付きですが)可能です。ただ、以下の問題があります。

1.挿入と同時読み込みを平行でできるのはテーブルに穴がない時だけです。これは村削除後にデータの整理をやっていればあまり問題になりません。

2.UPDATEの処理は通常SELECTより高い優先順位になっています。従って以下の状況では同時読み込みのパフォーマンスが悪化します。
・クライアントが実行に長時間かかる SELECTを使用します。
・その後、別のクライアントが使用テーブルに対して UPDATEを使用する。 このクライアントは SELECTが完了するまで待機が必要になる。
・別のクライアントが同一テーブルに対してさらに SELECTステートメントを使用します。UPDATEはSELECTより優先度が高いため、この SELECTは UPDATEが完了するまで待機が必要になります。また、最初の SELECTの完了を待つ必要もあります。
― MySQL 5.1 リファレンスマニュアル :: 6.3.2 テーブルロック関連の問題 より

この問題に対応する方法として考えられる手段は
A.テーブルの整理をこまめにやり、UPDATEクエリの優先順位を見直して並列性能を向上させる
B.ストレージエンジンをInnoDBに変更する。InnoDBは並列処理により特化しており、(全てとは言えないまでも)かなりのロックを削減できると考えています。

どちらを採用するべきかについて確かなことを言えるほどに詳しくはないのですが、データの整合を取る上では変更の巻き戻しが可能なInnoDBの方が多少楽ではないかと考えています。


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板