¿La consulta de la base de datos es más rápida si inserto varias filas a la vez:
me gusta
INSERT....
UNION
INSERT....
UNION
(Necesito insertar como 2-3000 filas)
¿La consulta de la base de datos es más rápida si inserto varias filas a la vez:
me gusta
INSERT....
UNION
INSERT....
UNION
(Necesito insertar como 2-3000 filas)
Respuestas:
INSERT
las declaraciones que usanVALUES
sintaxis pueden insertar varias filas. Para hacer esto, incluya múltiples listas de valores de columna, cada una encerrada entre paréntesis y separadas por comas.
Ejemplo:
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
. por supuesto, esto solo será mejor si los valores insertados provienen de diferentes tablas.
Si tiene sus datos en un archivo de texto, puede usar LOAD DATA INFILE .
Al cargar una tabla desde un archivo de texto, use LOAD DATA INFILE. Esto suele ser 20 veces más rápido que usar instrucciones INSERT.
Optimización de declaraciones INSERT
Puede encontrar más consejos sobre cómo acelerar sus declaraciones de inserción en el enlace de arriba.
BEGIN;
INSERT INTO test_b (price_sum)
SELECT price
FROM test_a;
INSERT INTO test_c (price_summ)
SELECT price
FROM test_a;
COMMIT;
Aquí hay una solución PHP lista para usar con una tabla: m (relación de muchos a muchos):
// 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')";