CouchDB 插入和更新性能
首先抱歉我的英语不好。 :(
我已经在开发模式下使用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 次请求要慢。如果你真的很在意性能,建议你重新考虑使用批量文档更新的接口。