
マスタースレーブレプリケーション(Select クエリ用)を使用して高可用性を実現したいと考えています。
どちらが良いのか疑問に思います:
- スレーブのリソースは少ないが、サーバーの数は多い、または
- スレーブのリソースは大きいがサーバーのリソースは少ない
変更クエリには 1 つのマスターのみを使用します: (更新 / 挿入 / 削除)
答え1
場合によります。
ハードウェアで調整する可能性が高いのは RAM です。RAMinnodb_buffer_pool_size
の約 70% に調整し、それがすべてのデータのサイズよりも大きい場合、I/O は非常に少なくなります。
それが現実的でない(または高価すぎる)場合でも、「ワーキング セット サイズ」が十分に小さければ、そのキャッシュの利点は依然として得られます。
それ以外の場合は、ある程度の I/O 処理能力が必要になります。
速度や CPU コアの数については心配する必要はありません。それがボトルネックになることはほとんどありません。
これを使用して、どのクエリを最も最適化する必要があるかを検出します。 http://mysql.rjweb.org/doc.php/mysql_analysis#slow_queries_and_slowlog
安価なレプリカを 2 つ追加して、パフォーマンスがどの程度優れているかを確認し、さらにいくつかの数値を持って戻って議論します。