Работа с базами данных с использованием класса ADODB

young

Новичок
Не поленился ж для этого новый хостинг зарегистрировать
 

confguru

ExAdmin
Команда форума
Не мешало бы еще провести тесты производительности для полноты картины
 

atlantij

Guest
насколько я могу читать по английски, совсем неплохо..?
 

confguru

ExAdmin
Команда форума
тобишь
PEAR DB = 152% тормозней ,))

Надо на Юниксе ИМХО тестировать
это большая разница будет на мой взгляд
 

Макс

Старожил PHPClub
Под Юнихом на данный момент тесты провести не могу.
Сделал свои под Win98 php-cli : (index.php)
PHP:
<?
include("DB.php");
include("adodb/adodb.inc.php");
include("Benchmark/Profiler.php");

$dbtype='mysql';
$dbuser='root';
$dbpass='';
$dbhost='localhost';
$dbname='scripts';

// количество повторов
$steps = 1000;
// запрос
$sql = 'SELECT * FROM cms_cats';

$profiler = new Benchmark_Profiler();
$profiler->start();

// mysql code
$profiler->enterSection('mysql');
for ($i = 0; $i < $steps; $i++) {
   $base = mysql_connect($dbhost, $dbuser, $dbpass);
   mysql_select_db($dbname, $base);
   $res = mysql_query($sql);
   while ($row = mysql_fetch_assoc($res)) { /* do nothing */}
   mysql_free_result($res);
   mysql_close($base);
}
$profiler->leaveSection('mysql');

// pear-db code
$profiler->enterSection('pear-db');
for ($i = 0; $i < $steps; $i++) {
   $db = &DB::connect($dbtype.'://'.$dbuser.':'.$dbpass.'@'.$dbhost.'/'.$dbname);
   $res = $db->query($sql);
   while ($row = $res->fetchRow(DB_FETCHMODE_ASSOC)) { /* do nothing */}
   $res->free();
   $db->disconnect();
}
$profiler->leaveSection('pear-db');

// adodb code
$profiler->enterSection('adodb');
for ($i = 0; $i < $steps; $i++) {
   $conn = &ADONewConnection($dbtype);
   $conn->Connect($dbhost, $dbuser, $dbpass, $dbname);
   $ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
   $res = $conn->Execute($sql);
   while (!$res->EOF) { $res->MoveNext();}
   $res->Close();
   $conn->Close();
}
$profiler->leaveSection('adodb');

             
$profiler->stop();
$profiler->display();
?>
php-cli index.php
Получил результаты:
Код:
---------------------------------------------------
sectiontotal   ex time         netto ex time     #calls      perct
---------------------------------------------------
mysql      44.134320020676    44.134320020676       1        20.14%
pear-db   118.66816401482    118.66816401482        1        54.16%
adodb      56.211785912514    56.211785912514       1        25.66%
Global    219.10298109055      0.088711142539978    1       100.00%
 
Сверху