Mysql
 sql >> база данни >  >> RDS >> Mysql

Най-добрият начин да ВМЕСИТЕ много стойности в mysqli?

Трябва да можете значително да увеличите скоростта, като поставите вашите вмъквания в транзакция. Можете също да преместите своите подготвителни и обвързващи изрази извън своя цикъл.

$array = array("array", "with", "about", "2000", "values");
$query = "INSERT INTO table (link) VALUES (?)";
$stmt = $mysqli->prepare($query);
$stmt ->bind_param("s", $one);

$mysqli->query("START TRANSACTION");
foreach ($array as $one) {
    $stmt->execute();
}
$stmt->close();
$mysqli->query("COMMIT");

Тествах този код с 10 000 повторения на моя уеб сървър.

Без транзакция:226 seconds. С транзакция:2 seconds. Или two order of magnitude speed increase , поне за този тест.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Алтернативи на MySQL Workbench - GUI на ClusterControl за насочване и щракване

  2. Отчитане на грешки в подготвените изявления на MySQLi

  3. Подходи за разделяне на MySQL?

  4. Пинкод база данни на Индия със скрипт за намиране на местоположение в php и jquery

  5. Как мога да видя на живо MySQL заявки?