Heim  >  Artikel  >  php教程  >  php读写文件与读写数据库的效率比较分享

php读写文件与读写数据库的效率比较分享

WBOY
WBOYOriginal
2016-06-06 19:55:571220Durchsuche

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 一直以来大家都把一些不经常修改的数据保存为文件来调用,看来还是比较正确的,直接读文件相比数据库查询效率更胜一筹,而且文中还没算上连接和断开的时间 这个问题也是最近才想到的,就是到底读文件

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入

  一直以来大家都把一些不经常修改的数据保存为文件来调用,看来还是比较正确的,直接读文件相比数据库查询效率更胜一筹,而且文中还没算上连接和断开的时间

  这个问题也是最近才想到的,就是到底读文件更快还是读数据库更快,能快多少,天缘也搜索过,没见有网友就这个问题答复过,也可能是太简单的缘故,我们本文还是来实测一下,由于时间关系,VC还没装,天缘先用PHP测试了一下,下次有时间在C/C++上补充测试到本文来,因为PHP的底层解析应该也是基于C的,所以估计两者环境测试结果差不多,小问题大收获,现在就来看一下测试过程及结果。

  测试程序如下:

  说明1:由于读数据库语句调用简单的封包函数两次,所以把读文件也改成连续调用两次,数据库记录ID为1就在第一条,并且唯一索引。

  说明2:测试两次一次是4K数据,一次是整形数据

  set_time_limit(0);

  function fnGet($filename)

  {

  $content = file_get_contents($filename);

  return $content;

  }

  function fnGetContent($filename)

  {

  $content = fnGet($filename);

  return $content;

  }

  $times=100000;

  echo '数据库查询结果:
';

  //---------------------------------

  $begin=fnGetMicroTime();

  for($i=0;$i

  {

  $res=$dbcon->mydb_query("SELECT log_Content FROM blog WHERE log_ID='1'");

  $row=$dbcon->mydb_fetch_row($res);

  $content=$row[0];

  }

  echo 'fetch_row '.$times.' 次时间:'.(fnGetMicroTime()-$begin)。'
';

  //---------------------------------

  $begin=fnGetMicroTime();

  for($i=0;$i

  {

  $res=$dbcon->mydb_query("SELECT log_Content FROM blog WHERE log_ID='1'");

  $row=$dbcon->mydb_fetch_array($res);

  $content=$row['log_Content'];

  }

  echo 'fetch_array '.$times.' 次时间:'.(fnGetMicroTime()-$begin)。'
';

  //---------------------------------

  $begin=fnGetMicroTime();

  for($i=0;$i

  {

  $res=$dbcon->mydb_query("SELECT log_Content FROM blog WHERE log_ID='1'");

  $row=$dbcon->mydb_fetch_object($res);

  $content=$row->log_Content;

  }

  echo 'fetch_object '.$times.' 次时间:'.(fnGetMicroTime()-$begin)。'
';

  //---------------------------------

  $dbcon->mydb_free_results();

  $dbcon->mydb_disconnect();

  fnWriteCache('test.txt',$content);

  echo '直接读文件测试结果:
';

  //---------------------------------

  $begin=fnGetMicroTime();

  for($i=0;$i

  {

  $content = fnGetContent('test.txt');

  }

[1] [2] 

php读写文件与读写数据库的效率比较分享

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn