Phalcon 批量插入性能。模型或原始 SQL

llo*_*ono 3 php performance insert bulk phalcon

有没有办法在 phalcon php 中进行批量插入?

我尝试使用\Phalcon\Mvc\Model create和使用原始 SQL插入 10000 条记录:insert into 'tablename' (a, b, c) values (), (), (), ... ()

我设置了这个非常简单的测试,结果很惊讶

  • 使用 \Phalcon\Mvc\Model 大约需要 36 秒
  • 使用原始 sql 需要 3.6 秒。

\Phalcon\Mvc\模型:

$transactionManager = new TransactionManager(); 

$transaction = $transactionManager->get();

$entity = new Entity();
$entity->setTransaction($transaction);
for($i = 0; $i < 10000; $i++){
    $entity->setValue1(rand(1,50));
    $entity->setValue2(rand(1,50));
    $entity->setValue3(rand(1,50));
}
$entity->create();
$transaction->commit();
Run Code Online (Sandbox Code Playgroud)

原始 SQL:

$query = "insert into 'tablename' (a, b, c) values ";

for($i = 0; $i < 10000; $i++){
    $values .= "(" . rand(1,50) . ", " . rand(1, 50). ", " . rand(1, 50). "),";
}

$values = substr($values, 0, strlen($values) - 1);
$query .= $values;
$this->db->query($query);
Run Code Online (Sandbox Code Playgroud)

mos*_*sid 5

Phalcon 用户为此问题创建了一个库,请在此处查看