购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.20 SQL组合优化

在开发过程中,有一些代码在语法上没有任何问题,但在执行上会有较大的时间成本浪费。比如有这样的代码,如代码清单1-35所示:

代码清单1-35 未经优化的SQL执行


<php
$user_ids = array101200101201101202101203);
foreach$user_ids as $user_id{
    $sql = "SELECT * FROM users WHERE user_id= $user_id "
    $res = mysql_query$sql);
    //Execute Query
   ......
}>

大家看到这种代码,是不是有种似曾相识的感觉?是的,这种代码对一些开发者来说并不陌生。这种程序每次都要重复遍历查询MySQL,造成时间的浪费和数据库的压力。

我们不妨转换成下面的代码样式,如代码清单1-36所示:

代码清单1-36 优化后的SQL查询


<php
$user_ids = array101200101201101202101203);
$user_ids_str = "'".implode"''"user_ids."'"
$sql = "SELECT * FROM users WHERE user_id= $user_id "
$res = mysql_query$sql);
//Execute Query
......>

从源代码上来做比较,第二段代码只执行了一次查询就已经完成了任务。

类似于这样的代码很多。它们从语法上并无显式错误,但性能上可差了不少。因此,在开发中,需要我们更多地深入考虑细节,机器是按我们的“旨意”在执行的,效率和成本取决于人。 ST2LEf0+pFBnflR6HUF+U+ABvx5aq6wJWVpJNZ2bXa/uFAfOv5Us808YwIJuexSk

点击中间区域
呼出菜单
上一章
目录
下一章
×