Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

mengisi MySQL dengan serangkaian besar baris dengan cepat

Secara umum, Anda dapat menggunakan salah satu atau lebih dari berikut ini:

  • Mulai transaksi, lakukan insert, commit
  • Kemas beberapa nilai ke dalam satu sisipan ke dalam kueri
  • Hilangkan batasan apa pun sebelum melakukan penyisipan dan kembalikan batasan setelah penyisipan massal (kecuali mungkin kunci utama, meskipun tidak terlalu yakin)
  • Gunakan insert into ... select jika cocok

Yang pertama (menggunakan transaksi) kemungkinan besar membantu, tetapi saya tidak yakin apakah itu berfungsi di tabel myisam, dengan innodb itu melakukan pekerjaan yang sangat baik - saya hanya menggunakannya ketika saya terpaksa menggunakan mysql, saya lebih suka postgresql .

Dalam kasus khusus Anda, memasukkan 100.000 baris data, Anda dapat melakukan hal berikut:

INSERT INTO status(id, responseCode, lastUpdate) SELECT @row := @row + 1 as row, 503, NOW() FROM 
(select 0 union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) t,
(select 0 union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) t2, 
(select 0 union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) t3, 
(select 0 union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) t4, 
(select 0 union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) t5, 
(SELECT @row:=0) t6;

Menguji ini di mesin saya, dapatkan:

Query OK, 100000 rows affected (0.70 sec)
Records: 100000  Duplicates: 0  Warnings: 0

Saya cukup yakin Anda tidak bisa lebih cepat dari itu untuk 100.000 baris.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. menyimpan data formulir ke database

  2. Looping Over Hasil Set di MySQL

  3. Kueri batch MySQL dengan batas

  4. Caching di PHP?

  5. Database Phpstorm :java.sql.SQLException:Kegagalan tautan komunikasi