Apakah permintaan basis data lebih cepat jika saya memasukkan banyak baris sekaligus:
Suka
INSERT....
UNION
INSERT....
UNION
(Saya perlu memasukkan 2-3000 baris)
Apakah permintaan basis data lebih cepat jika saya memasukkan banyak baris sekaligus:
Suka
INSERT....
UNION
INSERT....
UNION
(Saya perlu memasukkan 2-3000 baris)
Jawaban:
INSERT
pernyataan yang menggunakanVALUES
sintaksis dapat menyisipkan banyak baris. Untuk melakukan ini, sertakan beberapa daftar nilai kolom, masing-masing terlampir di dalam tanda kurung dan dipisahkan dengan koma.
Contoh:
INSERT INTO tbl_name
(a,b,c)
VALUES
(1,2,3),
(4,5,6),
(7,8,9);
INSERT INTO Table SELECT 1, '14/05/2012', 3 UNION SELECT 2, '05/14/2012', 3
. tentu saja, ini hanya akan lebih baik dari nilai yang dimasukkan berasal dari tabel yang berbeda.
Jika Anda memiliki data dalam file teks, Anda dapat menggunakan LOAD DATA INFILE .
Saat memuat tabel dari file teks, gunakan LOAD DATA INFILE. Ini biasanya 20 kali lebih cepat daripada menggunakan pernyataan INSERT.
Mengoptimalkan Pernyataan INSERT
Anda dapat menemukan lebih banyak kiat tentang cara mempercepat pernyataan sisipkan pada tautan di atas.
BEGIN;
INSERT INTO test_b (price_sum)
SELECT price
FROM test_a;
INSERT INTO test_c (price_summ)
SELECT price
FROM test_a;
COMMIT;
Berikut ini adalah solusi PHP yang siap digunakan dengan tabel: m (hubungan banyak ke banyak):
// get data
$table_1 = get_table_1_rows();
$table_2_fk_id = 123;
// prepare first part of the query (before values)
$query = "INSERT INTO `table` (
`table_1_fk_id`,
`table_2_fk_id`,
`insert_date`
) VALUES ";
//loop the table 1 to get all foreign keys and put it in array
foreach($table_1 as $row) {
$query_values[] = "(".$row["table_1_pk_id"].", $table_2_fk_id, NOW())";
}
// Implode the query values array with a coma and execute the query.
$db->query($query . implode(',',$query_values));
// db table name / blog_post / menu / site_title
// Insert into Table (column names separated with comma)
$sql = "INSERT INTO product_cate (site_title, sub_title)
VALUES ('$site_title', '$sub_title')";
// db table name / blog_post / menu / site_title
// Insert into Table (column names separated with comma)
$sql = "INSERT INTO menu (menu_title, sub_menu)
VALUES ('$menu_title', '$sub_menu', )";
// db table name / blog_post / menu / site_title
// Insert into Table (column names separated with comma)
$sql = "INSERT INTO blog_post (post_title, post_des, post_img)
VALUES ('$post_title ', '$post_des', '$post_img')";