Inserimento di più righe in mysql

La query del database è più veloce se inserisco più righe contemporaneamente:

piace

INSERT.... UNION INSERT.... UNION 

(Ho bisogno di inserire come 2-3000 righe)

INSERT istruzioni INSERT che utilizzano la syntax VALUES possono inserire più righe. Per fare ciò, includere più elenchi di valori di colonna, ciascuno racchiuso tra parentesi e separati da virgole.

Esempio:

 INSERT INTO tbl_name (a,b,c) VALUES (1,2,3), (4,5,6), (7,8,9); 

fonte

Se hai i tuoi dati in un file di testo, puoi utilizzare LOAD DATA INFILE .

Quando si carica una tabella da un file di testo, utilizzare LOAD DATA INFILE. Questo è solitamente 20 volte più veloce rispetto all’utilizzo delle istruzioni INSERT.

Ottimizzazione delle dichiarazioni INSERT

Puoi trovare ulteriori suggerimenti su come velocizzare le istruzioni di inserimento sul link sopra.

 BEGIN; INSERT INTO test_b (price_sum) SELECT price FROM test_a; INSERT INTO test_c (price_summ) SELECT price FROM test_a; COMMIT; 

Ecco una soluzione PHP pronta per l’uso con una tabella: m (relazione molti-a-molti):

 // 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')";