mysql和sqlserver到底谁的速度快?
测试结果让我痛心。本来一直还以为mysql是最快的数据库....
结果如下:(单位为秒)
比较项目 mysql耗时 sqlserver耗时
连结时间 0.01364 0.28493
插入一万条纪录 2.80973 12.94204
更新一万条纪录 812.48759 50.34521
删除一万条纪录 184.05414 31.28243
测试环境:
AMDcpu850+RAM128+window200server+php4.2.1+apache+sqlserver2000+mysql3.23.39
测试数据库:
CREATE TABLE test (
id int(11) NOT NULL auto_increment,
name varchar(50) NOT NULL,
num int(11) DEFAULT '0' NOT NULL,
PRIMARY KEY (id)
);
测试程序:
<?
echo "mysql和sqlserver数据库速度测试:<BR><BR>";
$m=10000;
function getmicrotime(){ //取得当前时间。单位是百万分之一秒
list($usec, $sec) = explode(" ",microtime());
return ((float)$usec + (float)$sec);
}
$mysql_link_time_start = getmicrotime();
//mysql数据库连结
$mysql_link=mysql_connect("localhost","root","");
mysql_select_db("test");
$mysql_link_time_end = getmicrotime();
$mysql_link_time = $mysql_link_time_end - $mysql_link_time_start ;
echo "mysql数据库连结花了".$mysql_link_time."秒钟!<BR>";
$mysql_insert_time_start = getmicrotime();
//mysql数据库插入一万条纪录
for($n=0;$n<$m;$n++){
mysql_query("insert into test(name,num) values('ljh','".$n."')"); //插入
// mysql_query("update test set name='xxx' where num='".$n."'"); //更新
// mysql_query("delete from test where num='".$n."'"); //删除
}
$mysql_insert_time_end = getmicrotime();
$mysql_insert_time = $mysql_insert_time_end - $mysql_insert_time_start;
echo "mysql数据库插入".$m."条纪录花了".$mysql_insert_time."秒钟!<BR>";
mysql_close($mysql_link);
echo "<BR>";
$sqlserver_link_time_start = getmicrotime();
//sqlserver数据库连结
$sqlserver_link=mssql_connect("localhost","sa","");
mssql_select_db("my_web");
$sqlserver_link_time_end = getmicrotime();
$sqlserver_link_time = $sqlserver_link_time_end - $sqlserver_link_time_start;
echo "sqlserver数据库连结花了".$sqlserver_link_time."秒钟!<BR>";
$sqlserver_insert_time_start = getmicrotime();
//sqlserver数据库插入一万条纪录
for($n=0;$n<$m;$n++){
mssql_query("insert into test(name,num) values('ljh','".$n."')");
// mssql_query("update test set name='xxx' where num='".$n."'");
// mssql_query("delete from test where num='".$n."'");
}
$sqlserver_insert_time_end = getmicrotime();
$sqlserver_insert_time = $sqlserver_insert_time_end - $sqlserver_insert_time_start;
echo "sqlserver数据库插入".$m."条纪录花了".$sqlserver_insert_time."秒钟!<BR>";
mssql_close($sqlserver_link);
?>
测试时注意:
不要动鼠标,测试前关闭其他可能会影响到测试的应用程序;
修改php.ini:max_execution_time = 200000
个人疑问:
1.难道mysql在linux上的速度才会达到最快,哪位兄台能否帮我在linux上面测试一下;
2.sqlserver还没有用到存储过程,如果用到了,那不是比mysql更加要快了?;
3.为什么插入速度mysql要快,但更新和删除却要慢多了,是不是检索速度太慢;
4.我的测试程序是不是有问题?
希望大家踊跃发言!