SORU
5 Mayıs 2010, ÇARŞAMBA


::FetchAll vs PDO PDO::bir döngü getirme

Sadece hızlı bir soru.

Orada herhangi bir performans PDO kullanarak arasındaki fark nedir::fetchAll() ve PDO::fetch() döngü (büyük sonuç kümeleri için)?

Eğer herhangi bir fark kullanıcı tanımlı bir sınıf, bir obje haline getiriliyor ediyorum.

İlk eğitimsiz varsayımım fetchAll PDO mysql_query tek yürütme tek bir deyim içinde birden fazla işlem yapabilir, çünkü daha hızlı olabilir. PDO iç işleyişini çok az bilgiye sahibim ancak ve belgeleri, bu konuda bir şey söylemiyor, ya da fetchAll olsun olmasın) sadece PHP-yan döngü bir dizi içine dökülüyor.

Herhangi bir yardım?

CEVAP
5 Mayıs 2010, ÇARŞAMBA


200 k rasgele kayıtları ile küçük bir kıyaslama. Beklendiği gibi, fetchAll yöntemi daha hızlıdır ama daha fazla bellek gerektirir.

Result :
fetchAll : 0.35965991020203s, 100249408b
fetch : 0.39197015762329s, 440b

Referans kodu :

<?php
// First benchmark : speed
$dbh = new PDO('mysql:dbname=testage;dbhost=localhost', 'root', '');
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = 'SELECT * FROM test_table WHERE 1';
$stmt = $dbh->query($sql);
$data = array();
$start_all = microtime(true);
$data = $stmt->fetchAll();
$end_all = microtime(true);

$stmt = $dbh->query($sql);
$data = array();
$start_one = microtime(true);
while($data = $stmt->fetch()){}
$end_one = microtime(true);

// Second benchmark : memory usage
$stmt = $dbh->query($sql);
$data = array();
$memory_start_all = memory_get_usage();
$data = $stmt->fetchAll();
$memory_end_all = memory_get_usage();

$stmt = $dbh->query($sql);
$data = array();
$memory_end_one = 0;
$memory_start_one = memory_get_usage();
while($data = $stmt->fetch()){
  $memory_end_one = max($memory_end_one, memory_get_usage());
}

echo 'Result : <br/>
fetchAll : ' . ($end_all - $start_all) . 's, ' . ($memory_end_all - $memory_start_all) . 'b<br/>
fetch : ' . ($end_one - $start_one) . 's, ' . ($memory_end_one - $memory_start_one) . 'b<br/>';

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Facebook Developers

    Facebook Dev

    24 ŞUBAT 2009
  • Makeup Lover

    Makeup Lover

    12 HAZİRAN 2011
  • thepoke64738

    thepoke64738

    17 HAZİRAN 2011