- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想将我的统计跟踪系统转换为不直接写入数据库,因为我们遇到了瓶颈。
我们目前在网站的某些方面使用 memcached,我想用它来存储统计数据并定期将它们提交到 mysql 数据库。
然而,问题在于项目的数量(以百万计),这些项目可能会在 cronjob 运行之间收集统计数据,并将其提交到数据库中。除了运行 SELECT * FROM data 并检查每个内存缓存键是否存在,然后更新表之外......还有其他方法可以做到这一点吗?
最佳答案
(我并不是说下面是福音,这只是我的直觉。正如后面所说,我不知道你的系统的细节:)并且显然没有冒犯的意思等等:))
我建议不要为此使用 memcached。 Memcached 旨在快速检索您之前获得的值,而不是存储值。最大的区别是您的缓存已满,您将丢失数据。
通常情况下,您的缓存中没有数据,并从源重新收集数据,但在这种情况下这是不可能的。仅此一点就足以成为我试图劝阻你的理由。
现在你说主要问题是你遇到的 mysql 连接限制。如果你做简单的事情(就像我们在评论中讨论的那样:插入延迟
),这只是增加限制的情况。您可能应该有足够的权力让您的脚本/用户访问数据库一次并说“这最终应该被添加”,然后离开。如果您的用户甚至无法为此打开 1 个连接,那么存在严重的资源问题,您可能无法通过添加额外的缓存层来解决?
显然很难说没有任何系统、软件和硬件的规范,但我的建议是看看你是否可以通过增加限制来让他们打开连接,并稍微调整一下服务器变量,而不是使用 memcached 作为中间层来对系统进行猴子修补。
关于mysql - 使用 memaced 减少数据库写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10077495/
我想将我的统计跟踪系统转换为不直接写入数据库,因为我们遇到了瓶颈。 我们目前在网站的某些方面使用 memcached,我想用它来存储统计数据并定期将它们提交到 mysql 数据库。 然而,问题在于项目
我是一名优秀的程序员,十分优秀!