PHP Data Object işlevlerinde ciddi sorunlar yaşıyorum. Tüm kümeyi almaktan kaçınmak için tamponlu bir sorgu kullanarak büyük bir sonuç kümesi (~ 60k satır, ~ 1gig) arasında geçiş yapmaya çalışıyorum.PHP PDO Arabellenmiş sorgu sorunu
Ne yaptığım önemli değil, komut dosyası yalnızca PDO :: query() üzerinde duruyor - sorgu çalışılmıyor gibi görünüyor (neden sonuç kümesindeki değişiklik 'sorunu düzeltmeniz gerekiyor?). İşte sorunu yeniden benim kodudur: Bazı makul sayıda sorgu sınırlamak durumunda
, iyi çalışıyor:
$rQuery = $Database->query('SELECT id FROM mytable LIMIT 10');
ben PDO :: MYSQL_ATTR_MAX_BUFFER_SIZE ile oynayan ve PDO kullanarak denedi :: ready() ve PDO :: execute() da (yukarıdaki sorguda herhangi bir parametre olmasa da), hem boşuna hem de. Herhangi bir yardım takdir edilecektir.
Vay tamam ben bir aptalım her satır yerine
fetch()
fetchAll()
kullanmak için bir izlenim bırakıyor beriHangi kesinlikle daha hızlı olacaktır . Bana tam tersi izlenimi verdiğini bilmiyorum. – Stewart
Teknik olarak, bir "arabelleğe alınmış" sorgusu, MySQL istemci kütüphanesinin, tüm sonuçları kendinize geri göndermeden önce TCP akışından çekmesi anlamına gelir. – staticsan
Hmm, bu kılavuzun arabelleğe alınmış/arabelleğe alınmamış (mysql stili) ve getirme/fetchAll (PDO stili) arasındaki farkı kapsadığını düşündüm, ancak yine de değil. Biraz daha arka plan bilgisi isterseniz, aşağıdaki yararlı bilgileri bulabilirsiniz: http://netevil.org/blog/2008/06/slides-pdo –