在mysql查询中,使用内置函数快,还是正则快呢?我昨天测试了一个例子,感觉速度差不多。
-
内置函数concat
$mykey=",李时珍,";
... where concat(',',keyboard,',') like '%{$mykey}%'
执行时间大概一秒,数据是8万多个。
2.正则regexp
$mykey="(^|,)李时珍($|,)";
$sql="select id,classid,newspath,filename,groupid,titleurl,title from {$dbtbpre}ecms_news where keyboard regexp '{$mykey}' order by newstime desc limit 500";
也是大概一秒左右,数据是8万多个。
但是,如果使用这样的正则 ^李时珍$|^李时珍,|,李时珍,|,李时珍$,它等同于"(^|,)李时珍($|,)",则执行时间到2秒多了。