首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >复制mysql表以分配重载的好处

问复制mysql表以分配重载的好处
EN

Stack Overflow用户
提问于 2014-07-05 07:35:03
回答 1查看 285关注 0票数 2

案例1:

我有一张A桌,每批一张,插入一张。从我的管理员,我需要在这个表上做一些繁重的读取和删除,以执行一些统计和维护。

在两个不同的表A和B中插入传入数据,并将表B用于我的管理是否有意义。目标是不超载表A。

案例2 :

另一个例子充分理解了逻辑,我有一个表(tmpA)专用于填充搜索结果。每次有一个搜索,结果是插入到这个表和帮助为pagination.The之夜,旧的结果被删除。

实际上,这个表每秒有5个请求,因此大约有500行*5= 2500行/per秒。

是否需要创建更多的表(tmpA、tmpB、tmpC等)为了发送插入和避免超载?

对于案例1,如果使sens复制,

在使用mysql复制的2(或更多)不同表中插入“手动”传入数据有什么区别?

多亏了你,杰西

EN

回答 1

Stack Overflow用户

发布于 2014-07-13 09:07:43

这是有点难以回答,因为它取决于您的设置硬件-明智。每秒插入一次也不算多。一个正确的安装服务器应该能够处理它。

表上的读取是非阻塞的。因此,收集信息来进行统计(假设您不对数据库中的统计数据进行计算)不应该影响数据库的性能。

另一方面,删除则是阻塞的,并将导致加载到具有大量插入的表上。

对于案例1,我不理解您将如何在不同的表上划分负载。一般来说,存在数据库服务器负载,而不是特定的表加载(除非我们将阻塞进程定义为表加载)。

我从评论中了解到,案例1是用户注册/注册。从维护的角度来看,将用户信息分割到两个表上是很可怕的,另外,不可避免地需要的两个表的耦合只会增加开销--负载,而不是减少它。删除数据(用户?)如果将数据分为两个表,则也是一个主要问题。如果将数据划分为两个表,您能解释如何管理数据吗?我可能漏掉了什么。

查看上面的内容,我不建议在表之间分割这些数据。我建议的是:

  • 使用InnoDB作为表类型。它的锁定比MyISAM小(哪个是表锁定?)
  • 优化MySQL的内存/内存使用。适当的内存设置允许非常快的读写。
  • 优化你的索引。EXPLAIN语句可以显示用于每个查询的

案例2我不完全理解用例,但是把这些数据吐到几个表中可能是有意义的。根据要推送这些临时表中的数据的原因,拆分可能会发生在每个用户、关键字或其他重要功能中。

根据用例,尝试通过LIMIT BY语句限制搜索结果(从而利用分页)。您不需要以这种方式存储分页的结果,也不需要存储结果。您能解释为什么要存储这些结果吗?每秒2500行就够了。

Replication是另一个主题,它要复杂得多,不是通过复制表,而是通过复制服务器来实现的。我帮不了你,从来不做,因为我从来不需要它。(我最大的MySQL服务器是aprox。80 at大,3.5亿行,插入最高每秒224行)

您能粘贴当前使用的表的体系结构和一些示例数据吗?这可能会让tad的案子更清楚。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24584142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档