Bir kerede birden fazla satır eklerseniz veritabanı sorgusu daha hızlı mıdır:
sevmek
INSERT....
UNION
INSERT....
UNION
(2-3000 satır gibi eklemem gerekiyor)
Bir kerede birden fazla satır eklerseniz veritabanı sorgusu daha hızlı mıdır:
sevmek
INSERT....
UNION
INSERT....
UNION
(2-3000 satır gibi eklemem gerekiyor)
Yanıtlar:
INSERT
VALUES
sözdizimi kullanan ifadeler birden çok satır ekleyebilir. Bunu yapmak için, her biri parantez içine alınmış ve virgülle ayrılmış birden çok sütun değeri listesi ekleyin.
Misal:
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
. Tabii ki, bu sadece farklı tablolardan eklenen değerlerin daha iyi olacaktır.
Verileriniz bir metin dosyasında bulunuyorsa, VERİ YÜKLEME YÜKLEME'yi kullanabilirsiniz .
Bir metin dosyasından tablo yüklerken, VERİ YÜKLEME YÜKLE seçeneğini kullanın. Bu genellikle INSERT ifadelerini kullanmaktan 20 kat daha hızlıdır.
INSERT İfadelerini Optimize Etme
Yukarıdaki bağlantıda ekleme ifadelerinizi nasıl hızlandıracağınıza ilişkin daha fazla ipucu bulabilirsiniz.
BEGIN;
INSERT INTO test_b (price_sum)
SELECT price
FROM test_a;
INSERT INTO test_c (price_summ)
SELECT price
FROM test_a;
COMMIT;
İşte: m (çoktan çoğa ilişki) tablosuyla kullanıma hazır bir PHP çözümü:
// 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')";