2012-06-07 92 views
0

我们必须展示差异来展示使用复制的优势。我们有两台电脑,由teamviewer连接,所以我们可以向我们的班级展示我们正在做什么。什么是在MySQL中显示复制效果的好方法?

  • 是否可以显示性能差异? (需要多长时间才能执行某些查询?)
  • 我们应该测试什么类型的查询? (换句话说,使用/不使用复制最大的区别在哪里)
  • 我们应该如何填写我们的数据库?应该有多少数据?

非常感谢!

回答

0

我想上述问题的答案取决于诸如您正在使用哪种存储引擎,数据库大小以及您选择的复制体系结构等因素。

我不认为复制会对简单的主从结构的查询执行产生太大的影响。但是,如果您有一个架构,其中有两个主服务器:一个处理写入,复制到另一个专门处理读取的主服务器,然后复制到处理备份的从服务器,则您更有可能能够呈现某些更积极的情况。阅读锁和存储引擎,因为这可能会影响您的选择。

一个简单的方法来显示如何复制可以是积极的是演示一个简单的备份策略。例如。在主服务器上进行每小时备份可以使底层应用程序在备份期间完全暂停(使用mysqldump进行备份可锁定表以避免发生读/写操作)。而复制到奴隶,然后从那里采取备份否定这种影响。

如果要显示详细的统计信息,最好查看一些基准测试/分析工具(sysbench,mysqlslap,sql-bench等等)。这可能会变得相当复杂,但。 也可能是值得看的Percona工具包和这里的Percona的监控插件:http://www.percona.com/software/

+0

当使用一个主 - 主架构,是有可能与devide限制SELECT查询? 例如:第一个是“SELECT * FROM .. LIMIT 0,100”,第二个是“SELECT * FROM .. LIMIT 100,100”?与单个查询相比,我可以看到性能的提高:“SELECT * FROM .. LIMIT 0,200” 我们使用的数据库有〜100.000个条目,旧数据库用于http://www.funda.nl/(你可以在那里查找/购买房屋)。 编辑:按输入提交评论,而不是结束一行..我只能编辑5分钟。烦人:)) – Arathanka

+0

我想没有什么能阻止你在两位大师之间做两次选择。使用LIMIT可能不如听起来那么快:在返回定义的100行之前,这些查询中的每一个都会扫描索引中的所有行。像这样的查询有一个糟糕的响应时间,并使mysqld做了太多的工作。这可能有助于传播负载。但是,请记住如何处理结果集,因为您可能会将复杂性和网络利用率加倍。 100,000条是需要考虑的数据。 – nonshatter

0

Replication有以下几个优点:

  • 鲁棒性与主/从设置增加。在与主出现问题时,可以切换到从作为备份
  • 更好的响应时间客户端可以通过拆分负载用于处理主从服务器之间的客户端查询实现
  • 另一个好处使用复制的方法是,您可以使用从服务器执行数据库备份,而不会干扰主站。

使用复制总是一件安全的事情,你应该复制你的生产服务器总是失败,这将是有益的。

您可以在显示复制性能的同时显示seconds_behind_master值,这表示从属的“迟到”应该不超过600-800秒,但网络延迟在这里很重要。 确保MasterSlave服务器的配置是否正确现在 您可以停止slave服务器,让Master服务器有一些更新/插入(批量插入)发生的事情,现在就开始slave服务器,你会看到更大的seconds_behind_master值应该继续下降,直到达到0的值。

有一个名为MONyog - MySQL Monitor and Advisor的工具,它实时显示复制状态。 enter image description here

而且要用什么样的复制是否陈述或者基于行已经在这里解释 http://dev.mysql.com/doc/refman/5.1/en/replication-sbr-rbr.html

相关问题