LINUX.ORG.RU

mysql vs pgsql


0

0

Имеем два скрипта на PHP4.2.1 для Mysql & Pgsql :
------ pgsql.php ------
<?
$t1=split(" ",microtime());

$db=pg_pconnect("dbname=mydb user=pgsql");

$t2=split(" ",microtime());

pg_exec("create table test1 (id serial, value int not null)");
pg_exec("CREATE INDEX index_value ON test1 (value)");

for($i=0; $i<200; $i++)
 pg_exec("insert into test1 (value) values(".rand().")");

$t3=split(" ",microtime());

$q=pg_exec("select * from test1 order by value desc limit 20");
while($t=pg_fetch_row($q))
 echo "$t[0] : $t[1]<br>";

pg_exec("drop table test1");
pg_exec("DROP SEQUENCE test1_id_seq");

$t4=split(" ",microtime());
$dt21=$t2[0]+$t2[1]-$t1[0]-$t1[1];
$dt32=$t3[0]+$t3[1]-$t2[0]-$t2[1];
$dt43=$t4[0]+$t4[1]-$t3[0]-$t3[1];

echo "( $dt21 : $dt32 : $dt43 )<br>";
?>
------ end of pgsql.php ------
------ mysql.php ------
<?
$t1=split(" ",microtime());

mysql_pconnect(":/tmp/mysql.sock","root","");
mysql_select_db("test");

$t2=split(" ",microtime());

mysql_query("create table test1 (id int not null auto_increment, unique(id), value int not null)");
mysql_query("create index index_value on test1 (value)");

for($i=0; $i<200; $i++)
 mysql_query("insert into test1 (value) values(".rand().")");

$t3=split(" ",microtime());

$q=mysql_query("select * from test1 order by value desc limit 20");
while($t=mysql_fetch_row($q))
 echo "$t[0] : $t[1]<br>";

mysql_query("drop table test1");

$t4=split(" ",microtime());
$dt21=$t2[0]+$t2[1]-$t1[0]-$t1[1];
$dt32=$t3[0]+$t3[1]-$t2[0]-$t2[1];
$dt43=$t4[0]+$t4[1]-$t3[0]-$t3[1];

echo "( $dt21 : $dt32 : $dt43 )<br>";
?>
------ end of mysql.php ------

Операционка: FreeBSD 4.5, postgresql-7.2.1, mysql-3.23.42, машинка
не самая мощная - PIII-500, 256, SCSI.

В данных примерах получается приблизительно следующее:
                                 mysql     pgsql
Время соединения PHP с базой    0.0008    0.0001
Create + Insert*200             0.2835    3.8534
Select                          0.0227    0.0974

То есть Pgsql проигрывает не только по выборке, но и по добавлению записей. Как такое может быть ? В чем грабли ?

anonymous

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.