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

PDO và liên kết nhiều bộ giá trị trong quá trình chèn - gần đây

Về lý thuyết, nghe có vẻ như một câu lệnh đơn lẻ sẽ hiệu quả hơn vì bạn tránh thực hiện nhiều lệnh gọi đến máy chủ MySQL, nhưng thực tế là đây là một tối ưu hóa vi mô và bạn đang phức tạp hóa mã của mình hầu như không mang lại lợi ích gì.

Điều thú vị về các câu lệnh chuẩn bị là nó được chuẩn bị một lần và có thể được thực hiện nhiều lần. Điều này đã giúp bạn phân tích cú pháp câu lệnh SQL nhiều lần. Chỉ cần chuẩn bị một câu lệnh bên ngoài vòng lặp và sau đó thực thi nó bên trong một vòng lặp.

$names = [['Joe', 'Smith'], ['Fred', 'Sampson'], ['Lisa', 'Pearce']];
$stmt = $pdo->prepare('INSERT INTO table (firstName, lastName) VALUES(?,?)');
foreach ($names as $name) {
    $stmt->execute($name);
}

Nếu bạn gói gọn toàn bộ mọi thứ trong một giao dịch như Your Common Sense đã đề xuất trong các nhận xét thì không có sự khác biệt đáng chú ý về hiệu suất so với một tuyên bố lớn.

$names = [['Joe', 'Smith'], ['Fred', 'Sampson'], ['Lisa', 'Pearce']];
$stmt = $pdo->prepare('INSERT INTO people (firstName, lastName) VALUES(?,?)');
$pdo->beginTransaction();
foreach ($names as $name) {
    $stmt->execute($name);
}
$pdo->commit();


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chọn mySQL chỉ dựa trên tháng và năm

  2. Khoảng cách Hamming trên chuỗi nhị phân trong SQL

  3. Cách trả lại vị trí của đối số trong danh sách đối số trong MySQL

  4. MySQL GROUP BY ... CÓ các giá trị khác nhau trong cùng một trường

  5. Lưu trữ giá trị băm SHA1 trong MySQL