这是一个非常广泛的问题,但我在过去几周内遇到过几次,我想知道关于良好做法和效率的普遍共识是什么。
1)
SELECT COUNT(*)FROM table WHERE id ='$ id',name ='$ name',owner ='$ owner_id'
然后根据是否有一个结果,然后记录匹配。
2)
SELECT * FROM table WHERE id ='$ id'
然后用一系列if命令检查结果是否匹配。
现在显然第二种解决方案有优势,因为它允许对不匹配的字段进行准确的错误报告......但如果不需要哪种更有效,则认为是更好的做法,并且有不同之处mySQL服务器上两者之间的负载?
答案 0 :(得分:2)
选项1远射。让SQL做它最好的设计,并且比程序代码更好。也就是说,过滤和排序数据。
此外,它可以更有效地利用资源(带宽,数据库利用率等)来仅从服务器中提取所需的数据。
答案 1 :(得分:1)
使用 1)。 Mysql在根据特定条件选择数据方面非常有效。
答案 2 :(得分:1)
大型查询可能需要.1到5.1或更多秒,您需要查找,运行并查找它。通常多个if如果更好,因为PHP非常快。当我在表中使用5个连接并使用50亿个产品时,我就这样做了,然后我减少了一个连接,然后使用if语句来修复它。查询花了4.2秒,当我减少连接时,花了3.8秒但是你知道PHP的速度要快一些。