【发布时间】:2018-03-02 07:36:07
【问题描述】:
我们知道 PHP 中的单引号比双引号快,所以 $foo = 'lorem ipsum'; 比 $foo = "lorem ipsum"; 快。
但是在 Mysql 查询中呢?单引号还是双引号会影响执行速度吗?
考虑以下不同的语法。哪一个是最快的?还是有另一种更快的语法?
mysqli_query($conn, 'SELECT * FROM `mytable` WHERE `full_name` = "' . $full_name. '"');
mysqli_query($conn, "SELECT * FROM `mytable` WHERE `full_name` = '" . $full_name. "'");
mysqli_query($conn, "SELECT * FROM `mytable` WHERE `full_name` = '$full_name'");
mysqli_query($conn, "SELECT * FROM `mytable` WHERE `full_name` = '{$full_name}'");
== 编辑 ==
我知道数据库的结构和其他因素也会影响执行速度。但是让我们假设我们已经有一个结构良好的数据库并排除其他因素。
【问题讨论】:
-
查询的速度不是你写它的方式,而是你访问数据的方式。例如,如果您通过
user_id(int)查询一百万用户,则索引将比您通过full_name(varchar(255))查询用户更快。 -
如果我猜的话,我会说查询的执行速度很大程度上取决于数据结构和数据库,而不是 PHP 语法。但我可能是错的。
-
谢谢大家。我理解你的观点。但是让我们假设我们已经处理了数据库结构和其他因素。
-
简短的回答是没有区别。这个答案有更多信息:stackoverflow.com/questions/3446216/…
-
@bbrumm 谢谢。该答案解释了纯 PHP 中的情况,而我想知道 Mysql 查询中的情况。此外,即使在纯 PHP 中,单引号和双引号也会有所不同,不是吗?
标签: php sql performance mysqli syntax