php php for循环查询数据库效率低,该如何优化mysql mysql

php php for循环查询数据库效率低,该如何优化mysql mysql,第1张

那就用sphinx 技术,目前这个是最好的,没有之一。

下面是我百度百科弄过来的,怎么使用还得你自己看白皮书了。

Sphinx的主要特性包括:

高速索引 (在新款CPU上,近10 MB/秒)

高速搜索 (2-4G的文本量中平均查询速度不到0.1秒)

高可用性 (单CPU上最大可支持100 GB的文本,100M文档)

提供良好的相关性排名

支持分布式搜索

提供文档摘要生成

提供从MySQL内部的插件式存储引擎上搜索

支持布尔,短语, 和近义词查询

支持每个文档多个全文检索域(默认最大32个)

支持每个文档多属性

支持断词

支持单字节编码与UTF-8编码。[1]

这个如果想要性能的话,就用下面的sql语句实现:

select orderNo from (select (@rowNum:=@rowNum+1) orderNo , userid ,pid from TABLE,(Select (@rowNum :=0) ) b )t where t.userid=2694

然后php获得这条结果数组,取第一个元素即是排序

如果对这个sql语句有疑问,不明白,可以使用一个比较耗费性能的方法:

select userid from record

执行这条语句,获得一个数组$res

遍历前设置一个记录排序的标识 $seq=1

for(...){

$userid=$res['userid']//把第seq 个位置的学号拿出来,跟想要的学号比

if($userid==2694){

break

}

$seq++

}

//如果 这个排序标识比结果集数组大小还大,说明没这个userid的记录。

$seq就是排序

我没有测试 你可以自己试一下


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8340528.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-15
下一篇 2023-04-15

发表评论

登录后才能评论

评论列表(0条)

保存