案例1:
我有一张A桌,每批一张,插入一张。从我的管理员,我需要在这个表上做一些繁重的读取和删除,以执行一些统计和维护。
在两个不同的表A和B中插入传入数据,并将表B用于我的管理是否有意义。目标是不超载表A。
案例2 :
另一个例子充分理解了逻辑,我有一个表(tmpA)专用于填充搜索结果。每次有一个搜索,结果是插入到这个表和帮助为pagination.The之夜,旧的结果被删除。
实际上,这个表每秒有5个请求,因此大约有500行*5= 2500行/per秒。
是否需要创建更多的表(tmpA、tmpB、tmpC等)为了发送插入和避免超载?
对于案例1,如果使sens复制,
在使用mysql复制的2(或更多)不同表中插入“手动”传入数据有什么区别?
多亏了你,杰西
发布于 2014-07-13 09:07:43
这是有点难以回答,因为它取决于您的设置硬件-明智。每秒插入一次也不算多。一个正确的安装服务器应该能够处理它。
表上的读取是非阻塞的。因此,收集信息来进行统计(假设您不对数据库中的统计数据进行计算)不应该影响数据库的性能。
另一方面,删除则是阻塞的,并将导致加载到具有大量插入的表上。
对于案例1,我不理解您将如何在不同的表上划分负载。一般来说,存在数据库服务器负载,而不是特定的表加载(除非我们将阻塞进程定义为表加载)。
我从评论中了解到,案例1是用户注册/注册。从维护的角度来看,将用户信息分割到两个表上是很可怕的,另外,不可避免地需要的两个表的耦合只会增加开销--负载,而不是减少它。删除数据(用户?)如果将数据分为两个表,则也是一个主要问题。如果将数据划分为两个表,您能解释如何管理数据吗?我可能漏掉了什么。
查看上面的内容,我不建议在表之间分割这些数据。我建议的是:
EXPLAIN语句可以显示用于每个查询的案例2我不完全理解用例,但是把这些数据吐到几个表中可能是有意义的。根据要推送这些临时表中的数据的原因,拆分可能会发生在每个用户、关键字或其他重要功能中。
根据用例,尝试通过LIMIT BY语句限制搜索结果(从而利用分页)。您不需要以这种方式存储分页的结果,也不需要存储结果。您能解释为什么要存储这些结果吗?每秒2500行就够了。
Replication是另一个主题,它要复杂得多,不是通过复制表,而是通过复制服务器来实现的。我帮不了你,从来不做,因为我从来不需要它。(我最大的MySQL服务器是aprox。80 at大,3.5亿行,插入最高每秒224行)
您能粘贴当前使用的表的体系结构和一些示例数据吗?这可能会让tad的案子更清楚。
https://stackoverflow.com/questions/24584142
复制相似问题