我正在开发一个网络应用程序,客户端将经常(每隔几秒)发送一些数据的读/写请求。到目前为止,当用户更改内容时,我的服务器会立即写入数据库,并在需要查看内容时立即从数据库中读取。这对我来说很好,但我猜想如果网上有成千上万的用户会很慢。
将写入请求保存在服务器端的对象中,然后以特定时间间隔进行批量更新会更有效吗?这将有助于在多次编辑相同数据的情况下,因为现在只需要一次数据库插入。这也意味着我会从对象中读取尚未同步的任何数据,这可能意味着通过避免数据库读取来提高效率。但与此同时,我觉得这有两个原因:1。服务器崩溃会清除所有尚未同步的数据。 2.批量插入可能会因大量数据库调用而产生突然的滞后峰值。
我该如何处理?我当前的方法是否正常,或者我应该在以后排队插入?
答案 0 :(得分:2)
如果用户对数据进行了更改并采取了他希望保存数据的操作,那么您应该尽一切可能确保实际保存数据。示例:假设您延迟写入一段时间。用户匆忙,进行更改然后关闭浏览器。如果你在采取他们期望的行动保存数据时没有保存,那么就会有数据丢失。
Web堆栈通常水平扩展。除非有证据证明你真的需要,否则不要开始优化这类事情。