質問: 'ID' and subid='SUBID'; で更新します。 手法として考えられるのは、以下のようなところかな、と思いますが、 アイデアなどありましたらよろしくお願いします。 A インメモリDB(MysqlMEMORYエンジンなど)をサーバーに立ち上げる デメリット:Mysql再起動で全レコード消失。レプリカが作れない。 B key-value型のDBをサーバー内に立ち上げる デメリット:障害発生時、即時対応が必要?? C AWSのDynamoDB デメリット:1秒1万アクセスは、コストが高すぎる 何かいい方法ないものかなー、といろいろ思案していますが、どれも一長一短で、 これといったものがなくて困っています。 よろしくお願いします。
回答: 有償ソフトウェアでよければCache' (InterSystems社)を使うと軽く実現できそうですがいかがでしょう。1000万件のレコードを作るのに手元のデスクトップマシン(Core i3-4130 3.4GHz)で28秒。その中の10000レコードをランダムに上書きまたは追加するのに0.027秒でした。(ネットワーク接続のオーバーヘッドは除いてです。) ジャーナリングはデフォルトで有効ですし、レプリケーションなどの機能を利用しても大きく性能は損なわないと思います。 フリーソフトウェアが必要ならGlobals (InterSytems社)あるいは GT.M (F.I.S.社)という手があります。MySQLとかとは違う世界なので、いろいろな意味で難しいかもしれませんが、性能については折り紙付きです。