10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 本手册下载
PDF (Ltr)- 41.9 mb
PDF (A4)- 42.0 mb
手册页(TGZ)- 266.1 kb
手册页(邮政编码)- 376.0 kb
信息(Gzip)- 4.0 mb
信息(邮政编码)- 4.0 mb
本手册摘录

为扩展17.4.5使用复制

您可以使用复制作为一个扩展的解决方案;也就是说,你想分手的地方数据库查询跨多个数据库服务器的负载,在一些合理的限制。

因为复制的作品从一个源的分布到一个或多个副本,使用复制扩展效果最好的环境中,你有大量的读和低数量的写/更新。大多数网站属于这一范畴,用户浏览网站,阅读文章,文章,或查看产品。更新只发生在会话管理,或者当购买或添加一个评论/消息到一个论坛。

复制在这种情况下使您能够分发副本读取,同时使您的web服务器与源通信时需要写。你可以看到一个示例复制这个场景的布局图17.1,“扩展”期间使用复制来提高性能

图17.1在扩展使用复制来提高性能

传入的请求从客户都指向一个负载均衡器,分配客户端数据在web客户机。写由web客户端被定向到一个MySQL源服务器,和读取由web客户端是针对三种MySQL副本服务器。从MySQL源服务器复制发生的三个MySQL副本服务器。

如果您的代码的一部分,负责数据库访问适当的抽象/模块化,将它转换为运行一个复制设置应该非常顺利和容易。改变你的数据库访问的实现将所有源写道,并发送读取源或复制品。如果您的代码没有这种级别的抽象,建立一个复制系统给了你机会和动力清理。首先创建一个包装器库或模块实现以下功能:

  • safe_writer_connect ()

  • safe_reader_connect ()

  • safe_reader_statement ()

  • safe_writer_statement ()

safe_在每个函数的名字意味着函数负责处理所有错误条件。您可以使用不同的函数的名称。最重要的是要有一个统一的接口连接读取,连接写道,做一个读和写。

然后把你的客户端代码使用包装器库。这可能是一个痛苦和可怕的过程,但它长期回报。使用上面描述的方法的应用程序都能够利用源/副本配置,甚至是一个涉及多个副本。代码更容易维护,增加故障排除选项是微不足道的。你只需要修改一个或两个函数(例如,记录每个语句了多久,那些或声明给了你一个错误)。

如果你有写大量的代码,您可能想要自动转换任务通过编写一个转换脚本。理想情况下,你的代码使用一致的编程风格惯例。如果不是,那么你可能最好重写它,或者至少经历和手动起居使用一致的风格。