CouchDB 插入和更新性能

0 投票
1 回答
840 浏览
提问于 2025-04-18 18:09

首先抱歉我的英语不好。 :(

我已经在开发模式下使用CouchDB好几个月了,当我们想要把它放到生产环境时,发现了一些性能问题。插入和更新1000个文档需要7秒钟(因为我在这里使用了缓存,否则会更久)。

我知道可以使用批量更新,但我不能这样做,因为我们的对象设计是这样的:

(在Python中)

class Props(object):
    def __set__(self, name, value):
        # this is a setter, and update couched
        couchdb.update(database, name, value)

class User(object):
    name = Props('name' + self.id)

然后我可以使用这样的代码:

user = User()
user.name = 'CouchDB'

这样就会把'CouchDB'保存到名为'test_somedatabase'的数据库中,文档ID是'name10000',值是{'name': 'CouchDB'}。

这段代码容易阅读和理解,但如果我这样做,就会导致性能问题:

for i in range(100):
    user.name = 'something'

有没有更好的方法来解决这个问题?我可以用TCP套接字代替HTTP吗?

谢谢!

1 个回答

1

CouchDB 只支持 HTTP 协议,即使有 TCP 连接,发起 1000 次请求总是比发起 1 次请求要慢。如果你真的很在意性能,建议你重新考虑使用批量文档更新的接口。

撰写回答