假设我有一千万的数据保存在数据库或者文件当中,当用户发表一个文章后我需要拿这篇文章和一千万的数据进行匹配,看一下这篇文章的字符串是否在这一千万个字符串当中有出现过;
我拿10万数据用两种方法测试过
foreach(i=0;i<100000;i++)
{
if(preg_match("/$str/i",$string))
{
echo '';
}
}//这个需要的时间是28秒
foreach(i=0;i<100000;i++)
{
$newstring=str_replace($str,"",$string);
if($newstring!=$string)
{
echo '';
}
}//这个是1秒搜索了很多的资料也都说明正则效率有一定的问题,那么我想问一下象这种级别的数据一般是如何去进行匹配搜索的呢?谢谢!!!!
我拿10万数据用两种方法测试过
foreach(i=0;i<100000;i++)
{
if(preg_match("/$str/i",$string))
{
echo '';
}
}//这个需要的时间是28秒
foreach(i=0;i<100000;i++)
{
$newstring=str_replace($str,"",$string);
if($newstring!=$string)
{
echo '';
}
}//这个是1秒搜索了很多的资料也都说明正则效率有一定的问题,那么我想问一下象这种级别的数据一般是如何去进行匹配搜索的呢?谢谢!!!!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货