这是我的第一篇文章:)所以我先道歉。我正在从mysql导出数据到couchdb,当一个条目保存后,我用最近更新的日期标记mysql条目。下面我有一个python函数,它接受一个json对象,一个接一个的对象和一些随机的id,在mysql本地更新:
def write_json_to_couchdb(json_obj, id):
#couchdb auto create doc_id and rev
doc_id = ''
revision_or_exception = ''
for (success, doc_id, revision_or_exception) in db.update(json_obj):
print(success, doc_id, revision_or_exception)
# mark id inside mysql db, so we know its been saved to couchdb
mysql.update_item_date(id)
上面的这个解决方案是可行的,但是很慢,无论是写couchdb还是更新到mysql,我怎么才能使用“bulk API”或“batch api”,而不使用curl。我相信couchdb的db.update(item)也可以像这样使用db.update(dict_of_items)。我怎么才能指定“batch ok”。还有其他我不知道的方法吗?网上似乎有一些例子。
这会显著提高速度吗?还有,我如何指定“批处理大小”,比如说1000条记录。
以下是我认为更好的解决方案:
def write_json_to_couchdb_bulk(json_obj_list, id_list):
doc_id = ''
revision_or_exception = ''
for (success, doc_id, revision_or_exception) in db.update(json_obj_list):
print(success, doc_id, revision_or_exception)
# update added_date with current datetime
for id in id_list:
mysql.update_item_date(id)
谢谢你,
开关
1条答案
按热度按时间ttcibm8c1#
这是我想出的解决方案,它快得多。