PHP新人有个问题请教大家
发布于:2022-01-17 09:50:54
#1 碎翼天使
我建立了 一个关键字表 里面存储着 所有的关键字
然后 我现在要查询 一组关键字($new) 是否在 这个表里存在
我可以循环 $new 每循环一次都去查询一次数据库
我想 我还可以 把所有的关键字 都取出来 生成一个数组 $old
用关键字的name做 $key 用id做$value
然后 循环要查询的关键字 做
if(is_null($old[$new[$x]]))
来判断 该关键字 是否存在
但是我不确定这种方法行不行
以及哪种 方法的效率比较好一点儿
请教大家一下
2012-03-21 17:56:13
#2 jake
要看你的“待查关键字数组”一般有多大,
如果只有几个,而且数据量不大,那么可以直接把这些关键字连成 keyword = xxx OR keyword =xxx OR...
然后再一次查询。
如果几十个,那么建议是循环,一个一次查(查了后缓存),表中关键字字段要加上索引。
如果几百个以上,那么建议是用memcached缓存,memcache的key-value特性,做这种查询反而更容易,而且效率非常高。
2012-03-21 18:31:34
#3 碎翼天使
那还是用缓存好了
理由如下:
1.用OR的方式 肯定不行,因为如果是没有的关键字 还要添加。用OR就不知道 哪个关键字没有了
2.作为一个网站。可能会有很多人同时使用这个功能。
2012-03-22 08:54:20