2014-10-28 2 views
0

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

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

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

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

ответ

2

Я просто не верил в это, когда я наткнулся на него где-то некоторое время назад, когда я искал что-то еще ... Но теперь я попробовал это, и, похоже, он работает, и я получил большое увеличение производительности (когда делая много вставок). Кажется, вы должны сделать это таким образом (с помощью 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)); 

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