mysqlで下記情報のうまくまとまったサイトを教えてください。

1)同時に走れる更新系命令(insert,updateなど)の数
2)同時に走れる参照系命令(selectなど)の数
3) 1)2)に関するlockなどの説明など

環境は
MySQL4.1
MyISAM
です

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/10/25 13:21:58
  • 終了:2006/11/01 13:26:25

回答(3件)

id:b-wind No.1

b-wind回答回数3344ベストアンサー獲得回数4402006/10/25 19:07:19

ポイント27pt

1,2,に関してはサーバーのスペックと設定パラメーターしだいと思います。

3は公式マニュアルが詳しいです。

http://dev.mysql.com/doc/refman/4.1/ja/locking-issues.html

id:inokuni No.2

いのくに回答回数1343ベストアンサー獲得回数212006/10/25 18:14:46

ポイント27pt

http://www.buena-idea.net/~hironobu/mysql/m-2-10.html


負荷の少ない QUERY でしたら瞬間的に結果が帰ってきますので、複数の QUERY を同時に投げて同時に応答されたように感じてしまうかもしれませんが、MyISAM形式のテーブルで lock がかかるとテーブル全体が lock されてしまい、lockが解除されるまでは次の処理が待たされることになりますので、「同時に走れる」という表現は厳密に言うと適当ではないと思います。特に更新系の場合。


結局、テーブルの構造とか、データの量とか、index を使うOR使わないとか、どのような QUERY を投げるのかとか、サーバの能力とかによって、処理に必要な時間は変わってくると思うので、一概に「○秒以内に処理できる QUERY は大体 ○件」とは言えないと思うのです。


ですので、実環境に近い状態で様々なQUERYを投げてみて実験をされてみることをお勧めします。


あと、比較的短時間に Lock を伴う大量の更新系の処理が予想される場合は、InnoDB型のテーブルを使った方がいいかもしれません。

id:yoshifumi1975 No.3

yoshifumi1975回答回数58ベストアンサー獲得回数102006/10/26 13:47:48

ポイント26pt

1)同時に走れる更新系命令(insert,updateなど)の数

MyISAMは、更新系の際に、テーブルレベルでロックしますので、書き込みは一度に1つのスレッドからしかできません。2つ目以降は、1つ目が書き終わるまでまたされます。

InnoDBなどは、行レベルロックになりますので、

別の行であれば同時接続クライアントの数だけ書き込めます。


2)同時に走れる参照系命令(selectなど)の数

同時にいくつでも並列に実行できます。


3) 1)2)に関するlockなどの説明など

http://www.buena-idea.net/~hironobu/mysql/m-2-10.html

ここなんかいかがでしょう。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません