1

基本的にログを含むMyISAMテーブルがあります。マシンのクラスターはINSERT、このテーブルで1秒あたり50の割合で単一レコードを実行しますが、同じテーブルもSELECTWebアプリケーションから取得され、これに対応するためにインデックスが付けられます。UPDATEただし、 sまたはsはありませDELETEん。

したがって、私が収集したものから、同時挿入を使用する必要があります。(そうですか?)MyISAMは通常、追加の作業なしでこれを実行します。(これは正しいです?)

しかし、私が見つけられないのは、与えられたものが同時に処理されることを保証する方法です。グローバル変数をにINSERT設定できることは知っていますが、これをグローバルに設定したくありません。concurrent_insert2

だから私の質問は:

  • 同時挿入を保証するために私が見逃している方法はありますか?

  • そうでない場合、テーブルが同時挿入要件を満たしているかどうかを確認するために使用できるコマンドはありますか?(テーブルに穴が開いているかどうかを知るだけで十分だと思いますか?)テーブルを監視するだけでも解決できるからです。

  • そして、私も興味があります。この種の負荷をより適切に処理できる他のデータベースシステムはありますか?もしそうなら、私はNoSQLソリューションで完全に大丈夫です。RubyとCから話せる限り。

4

1 に答える 1

1

なぜconcurrent_insert=2をグローバルに設定したくないのですか?それはあなたが望むものを与えるでしょう。

このタイプのMyISAMテーブルで検討したいもう1つのオプションは、INSERT DELAYEDです:http: //dev.mysql.com/doc/refman/5.1/en/insert-delayed.html

于 2010-07-09T17:04:08.667 に答える