mysql içine php bir dizi ile birden fazla Satır Ekle
Ben geçen büyük bir veri kümesi içine bir mysql tablo ile php kullanarak ınsert komutları ve merak ediyorum eğer onun Olası eklemek için yaklaşık 1000 satır hiç bir zaman üzerinden bir sorgu dışında ekleme her değer üzerinde bir mil uzunluğunda bir dize ve sonra yürütme. Fonksiyonları da mevcut yani codeıgniter çerçeve kullanıyorum.
CEVAP
Birden fazla satır ile bir INSERT
açıklama montaj çok daha hızlı bir satır başına INSERT
deyim daha MySQL.
Bu, string işleme algoritması bir sorun, bir dil değil, PHP sorunları, içine çalışıyor olabilir gibi geliyor " dedi. Büyük dizeleri ile çalışırken temel olarak, gereksiz kopyalama en aza indirmek istiyor. Öncelikle, bu birleştirme önlemek için istediğiniz anlamına gelir. En hızlı ve en etkin bellek büyük bir dize oluşturmak için, bir satır yüzlerce ekleme gibi implode()
fonksiyon ve dizi atama yararlanmak için.
$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ı kopya olmadığını ve yeniden kopyalayın şimdiye kadar her birleştirme ile bir araya topladığın SQL deyimi; bunun yerine, PHP yaparbir kezimplode()
deyim. Bu birbüyükkazanmak.
Eğer çok sütun için bir araya koymak, ve daha çok uzun, sana da inşa bir iç döngü için aynı şeyi ve kullanmak implode()
ata değerleri maddesi dış dizi.
Nasıl "yinelenen OLMADAN birden f...
Nasıl birden fazla satır içine daha fa...
VİM, nasıl birden fazla satır içine ço...
Daha hızlı olan: birden fazla tek Ekle...
Vim içinde nasıl etkin bir şekilde bir...