高性能MySQL笔记(第十章 复制)02

p469 ~ p534. 分为2部分, p469 ~ p501(10.1 ~ 10.4), p501 ~ p534.

一些命令

  • 查看binlog, show binlog events in 'mysql-bin.000001' from 4. 可以查看执行的每条语句

复制和容量规划

假设工作负载为20%的写以及80%的读. 为了计算简单, 假设有以下前提:

  • 读和写包含同样的工作量
  • 所有的服务器是等同的, 每秒能进行1000次查询
  • 备库和主库有同样的性能特征
  • 可以把所有的读操作转移到备库

问题1: 每秒2000次查询, 需要增加多少备库才能处理.

由于写占20%, 则400次写, 1600次读. 对于每个备库, 也有400次写, 所以最多支持600的读, 因而需要1600/600 =2.7, 即3台备库.

问题2: 每秒4000次查询, 需要增加多少备库.

800次写, 3200次读. 每个备库最多支持200的读, 因而需要16台备库. 这里写操作成了瓶颈, 导致写操作浪费了太多资源, 增加备库收益很低.

有2个维度的优化:

  1. 降低写操作的负载, 提高写操作的效率. 比如降低到10%. 这样只要7台备库就可支持.
    具体方式如递增主键比随机主键要快, 日志写入就比随机写入效率高等.
  2. 降低单库写入次数. 如分库分表, 将数据按维度平均划分为2个维度. 这样每个维度都是相对独立的, 每个维度的量都是每秒2000次查询, 这样就不需要太多的备库.

猜你喜欢

转载自www.cnblogs.com/winwink/p/HighPerformanceMySql_Chapter10_Replication_02.html