0

私の知る限り、ほとんどの RDBMS パッケージは、クエリの 99% が選択クエリになることを念頭に置いて構築されています。ただし、クエリの少なくとも 50% を作成/更新クエリとして使用している状況です。永続性も必要であるため、NoSQL ソリューションを使用することはできません。基本的に、更新があるときはいつでも、すぐに永続的に保存する必要があります。そのため、MySQL でのパフォーマンスが低下するのではないかと考えていました。現在の MySQL エンジンは InnoDb です。他のどの MySQL エンジンがより望ましいですか? Amazon RDS を使用する予定なので、私の焦点は MySQL です。しかし、好奇心から、postgresqlがこれに役立つかどうか知りたいです。

注意 - スケールのアイデアを示すために、本番環境に入ってから数か月以内に、少なくとも 100 万のエントリを持つテーブルに対するクエリの作成/更新について話しています。

4

2 に答える 2

1

ワーキングセットがメモリに収まる場合、挿入と更新は非常に高速になる傾向があります。他の人が述べているように、ここではパーティショニングが役立ちます。ほとんどのNoSQLソリューションには永続性があるため、それらを完全に除外しないでください。Cassandraには、書き込み用に特別に調整されたストレージモデルがあり、一見の価値があるかもしれません。

MySQLを使用する場合は、耐久性とインサートのパフォーマンスを交換するためのチューニングパラメータ、およびその他のさまざまなハードウェアとソフトウェアの設定があります。

https://serverfault.com/questions/118504/how-to-improve-mysql-insert-and-update-performance

標準ディスクで完全な耐久性を使用すると、おそらく1秒あたり約100回の挿入が期待できます。それでも問題が解決しない場合は、ベンチマークを設定してパラメーターの調整を開始するか、再設計の準備をしてください。ベンチマークテストは、テーブル内の現実的な量のデータを使用して重要です。テーブルが入力され始めてから6か月後に問題を発見するよりも、今すぐ問題を発見する方がはるかに優れています。合成データは問題ありません。インデックス付きフィールドが同様に分散されていることを確認してください。

于 2012-07-04T13:56:59.453 に答える
1

テーブルに行を挿入/更新するときにすべてのインデックスを更新する必要があるため、インデックスをできるだけ少なくすると、挿入と更新の速度が向上します。ただし、もちろん、一部のインデックスによって更新が増加する可能性があることに注意してください。

于 2012-07-04T12:46:11.170 に答える