Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Doctrine2 - Nhiều lần chèn trong một lần chụp

Theo câu trả lời này , Doctrine2 không cho phép bạn kết hợp nhiều câu lệnh INSERT thành một:

Bạn có thể đọc thêm về xử lý hàng loạt Doctrine2 tại đây: http:// www .doctrine-project.org / blog / doct2-batch-processing.html

Bạn có thể chuyển sang DBAL hoặc sử dụng cách xử lý dữ liệu của mình theo từng đợt nhỏ bằng cách cấp cho trình quản lý thực thể của bạn sau một lượng chèn nhất định:

$batchSize = 20;

foreach ($items as $i => $item) {
     $product = new Product($item['datas']);

     $em->persist($product);

     // flush everything to the database every 20 inserts
     if (($i % $batchSize) == 0) {
         $em->flush();
         $em->clear();
    }
}

// flush the remaining objects
$em->flush();
$em->clear();


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Trình điều khiển Mysql JDBC ClassNotFoundException

  2. MySQL- Tại sao LAST_INSERT_ID () không hoạt động với tôi?

  3. Tránh đưa vào SQL trong SQL-regex do người dùng tạo

  4. Thay đổi múi giờ kết nối trong MySQL

  5. khi khởi tạo PDO - tôi nên làm gì:charset =UTF8 hay charset =UTF8MB4?