gpt4 book ai didi

postgresql - 将数据从 PostgreSQL 复制到 CouchDB

转载 作者:行者123 更新时间:2023-11-29 11:33:55 25 4
gpt4 key购买 nike

我有一个简单的 PHP 脚本:

$cc = new couchClient('http://localhost:5984', 'posts_votes');
for ($i = 0; $i < 107000000; $i += 100000) {
// Usage of dibi database layer
$data = dibi::select('*')->from('posts_votes')
->offset($i)
->limit(100000);
foreach ($data as $n => $row) {
$doc = new stdClass();
$doc->post_id = $row->post_id;
$doc->date = $row->date->format('Y-m-d H:i:s');
$doc->upvotes = $row->upvotes;

$cc->storeDoc($doc);
if (($i+$n) % 1000 == 0) {
echo ($i+$n).'...';
}
}
}

但此脚本每分钟能够复制大约 8500 条记录(当在没有 Apache 的情况下直接通过 PHP 解释运行脚本时),如果我需要复制约 100 000 000 条记录,这就没那么快了。

有什么方法可以更快地做到这一点?

最佳答案

查看 storeDocs() 方法而不是 storeDoc()。 storeDocs(复数)将使用 CouchDB _bulk_docs API,这会快得多。

也许您可以通过试验找到最佳批量大小。

关于postgresql - 将数据从 PostgreSQL 复制到 CouchDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6450826/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com