json - couchdb - 信使应用程序中的 json 性能

标签 json couchdb

我有一个由 PHP 编写的基于 Web 的即时通讯应用程序。最近我从mysql迁移到couchdb,我认为这通常是一个好主意,到目前为止它工作得很好。我不需要 View 等。基本上我按 ID 获取文档。

但是我对性能有些怀疑。两个用户之间的对话存储在一个文档中。例如在 A 和 B 之间我有一个文档,在 C 和 B 之间我有另一个文档等。

我从不删除日志,当这两个用户之间发起新对话时,我使用 json_decode 解码存储的文档,打印出两个用户最近的对话历史记录。当他们中的一个人写新东西时,我在数组末尾添加新的聊天行(我从文档中获得),将数组重新编码为 json,最后更新文档。

我说的对吗?在 no-sql 数据库中存储如此大的数组的最佳做法是什么?

最佳答案

我会以不同的方式建模;对所说的每件事都使用一个文件。 {"from":"foo","to":"bar","text":"嘿那里"}。因此,您只需要制作新文档,而且每个文档都非常小。

添加一个时间戳,然后使用基于该时间戳的 View 来重建对话。

您需要使用服务器的时间来确保正确排序,因此我建议您通过更新处理程序 (http://wiki.apache.org/couchdb/Document_Update_Handlers) 进行更新并在此处添加时间戳。

关于json - couchdb - 信使应用程序中的 json 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7472274/

相关文章:

PHP MySQL JSON 登录系统

sql - 如何构建 SQL 以按日期获取分组数据

javascript - 如何监听 Javascript 中的变量变化?

测试 CouchDB View 、过滤器、列表、显示等

java - 在类路径 : 上发现多次出现 org.json.JSONObject

json - MongoDB 中有任何内置的 JSON.parse 吗?

python - KeyError at/object_post//由于python或JSON而发生?

asp.net - NoSQL DB for .NET 基于文档的数据库 (ECM)

apache - 严重 : CouchDBQuery error. java.net.SocketException:打开的文件太多

couchdb - 删除 CouchDB 数据库中的所有文档*除了*设计文档