Birden fazla satır ile bir INSERT
bildirimde montajı çok daha hızlı MySQL satır başına bir INSERT
deyimi daha.
Eğer gerçekten bir algoritma sorun değil, bir dil biridir PHP, string işleme sorunlar haline çalışıyor olabilir gibi geliyor, dedi. Büyük dizeleri ile çalışırken Temelde, gereksiz kopyalama en aza indirmek istiyoruz. Öncelikle, bu birleştirme kaçınmak istediğiniz anlamına gelir. Böyle birinde satırlar yüzlerce ekleme gibi büyük bir dize oluşturmak için en hızlı ve en verimli bir şekilde bellek, implode()
fonksiyon ve dizi atama yararlanmak etmektir.
$sql = array();
foreach( $data as $row ) {
$sql[] = '("'.mysql_real_escape_string($row['text']).'", '.$row['category_id'].')';
}
mysql_query('INSERT INTO table (text, category) VALUES '.implode(',', $sql));
Bu yaklaşımın avantajı, kopyalama ve şimdiye kadar her birleştirme ile monte ettik SQL deyimini yeniden kopya yok olduğunu; Bunun yerine, PHP implode()
açıklamada bu once yapar. Bu big kazançtır.
Eğer bir araya getirmek için sütunların çok olması, ve bir veya daha çok uzun ise, siz de aynı şeyi yapmak ve implode()
dış diziye değerler fıkra atamak için kullanılacak bir iç döngü kurmak olabilir.