couchdb — PHP массовая вставка couchbase

У меня проблемы с массовой вставкой документов с помощью PHP SDK. Я должен вставить каждый в отдельности, как

$temp = $db->upsert("key here", "value here");

Я могу достичь около 500 в секунду. Я пытался использовать cbcdocloader, но я не могу сгенерировать json быстрее, чем просто использовать SDK для их прямой вставки. Я пытаюсь вставить несколько документов с одной вставкой, поэтому мне не нужно генерировать весь трафик. Есть ли способ сделать это с помощью структуры массива, как показано ниже?

 $data = array("key 1"=> "value 1", "key 2" => "value 2")

0

Решение

Я просто не верил в это, когда наткнулся на это где-то некоторое время назад, когда я искал что-то еще … Но теперь я попробовал это, и, похоже, это сработало, и я получил значительное повышение производительности (при выполнении многих вкладыши). Кажется, вы должны сделать это таким образом (используя SDK 2.0 и upsert()):

$bucket->upsert(array(
'key1' => array('value' => 'value1'),
'key2' => array('value' => array('jsonkey' => 'jsonvalue')));

Вы должны использовать 'value' буквально во втором массиве.

Кажется, вы также можете указать параметры, используя:

$bucket->upsert(array(...), null, array('expiry' => 3600));

Может быть, кто-то может проверить это …

2

Другие решения

Там нет массовой загрузки API-вызова как такового.

Есть SEO вставки навалом http://docs.couchbase.com/couchbase-devguide-2.1/#performing-a-bulk-set.

Даже, это делает то, что вы уже делаете, в циклах.

0