您的位置:首页 > 理论基础 > 计算机网络

mysql 序列化缓存到txt文件查找数据与直接查找数据 性能对比,13,601条数据文件缓存平均0.085秒后只需0.025秒 推荐 程序员导航网http://www.je666.com

2011-10-24 03:30 651 查看


推荐
程序员导航网http://www.je666.com

CREATE TABLE IF NOT EXISTS `ylmf_site_search` (

`id` int(11) NOT NULL,

`displayorder` int(11) NOT NULL,

`pinyin` varchar(255) CHARACTER SET gbk NOT NULL,

`name` varchar(255) CHARACTER SET gbk NOT NULL,

`url` varchar(255) CHARACTER SET gbk NOT NULL,

PRIMARY KEY (`id`),

KEY `displayorder` (`displayorder`),

KEY `name` (`name`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8;

对比的数据库结构如上

<?php//对比代码两个部分

/* 先去掉注释运行这部分 然后加上注释

$db=mysql_connect('localhost','qqtxt','zhh1981zhh');

if($db)

{

mysql_query("SET character_set_connection=utf8, character_set_results=utf8,character_set_client=binary");

mysql_select_db('la') or die('select_db failed');

set_magic_quotes_runtime(0);

//ini_set('magic_quotes_runtime','off');

echo $sql='SELECT * FROM `ylmf_site_search`';

$result = mysql_query($sql) or die('Query failed: ' . mysql_error());

$all=array();

while($row=mysql_fetch_assoc($result))

{

$all[]=$row;

}

file_put_contents("t.txt",serialize($all));

}exit;

*/

define('PAGE_STARTED',microtime(true));

header('Content-Type: text/html; charset=utf-8');

if(false && file_exists('t.txt')) //加上与去掉false&& 看对比效果

{

$all=unserialize(file_get_contents("t.txt"));

foreach($all as $k =>$v)

{

if(strpos($v['name'],'百度')!==false)

print_r($v);

}

timeStatus(PAGE_STARTED);

}

else {echo "1<br/>";

$db=mysql_connect('localhost','qqtxt','zhh1981zhh');

if($db)

{

mysql_query("SET character_set_connection=utf8, character_set_results=utf8,character_set_client=binary");

mysql_select_db('la') or die('select_db failed');

set_magic_quotes_runtime(0);

//ini_set('magic_quotes_runtime','off');

$sql='SELECT * FROM `ylmf_site_search` where name like "%百度%"';

$result = mysql_query($sql) or die('Query failed: ' . mysql_error());

$all=array();

while($row=mysql_fetch_assoc($result))

{

print_r($row);

}

}

timeStatus(PAGE_STARTED);

}

/**

* ()显示当前运行了多久,用于观查程序运行效率

* @param

* @return

*/

function timeStatus($pageStartTime){

printf("<br/>%.5f %.5f %.5f",$pageStartTime,$_time_=microtime(true),$_time_-$pageStartTime);

}

//mysql 序列化缓存到txt文件查找数据与直接查找数据 性能对比,13,601条数据文件缓存平均0.085秒后只需0.025秒

?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: