質問: 現在、mysqlの負荷の勉強をしています。 MYSQLは一台構成でしか使ったことがないのですが、 書き込みは、MASTERサーバーに。 参照はSLAVERサーバーに。 とありました。 しかし、書き込みしたMASTERサーバーのデータも、 SLAVERサーバーに書き込まれるわけですよね? これだと負荷対策になっていない気がするのですが、 どうなんでしょうか。 MASTERサーバーに書きこみしたデータはいつ、SLAVERサーバーに書き込まれるのか。 またなぜSLAVEに書き込まれた時の負荷は少ないのか。 教えてください。
回答: Masterが書き込みに専念することで更新のパフォーマンスを上げることを意図しています。 トランザクション処理を行うなど、更新以外の部分での負荷もあるため、結果だけを同期するSlaveへの更新負荷は通常Masterよりも少なくなります。 また、Slaveは複数台構成とすることが可能なため、参照がメインとなるシステムではスケールしやすくなります。 同期タイミングは通常は非同期ですが、設定により準同期という状態(これも実際には非同期)にはできます。 更新の同期が必要な場合は、MySQL Clusterを使うことになります。