【发布时间】:2012-03-25 08:23:46
【问题描述】:
在选择查询中使用 MySQL 的 CONCAT() 函数时,是否有任何性能问题需要注意?在返回数据库的结果集后,使用 PHP 进行简单的选择和格式化字符串是否更快/更慢/可以忽略不计?或者是一个更复杂的 SQL 查询,多次调用 CONCAT() 返回一个已经为视图格式化的字符串是更好的方法?
就是这样:
select CONCAT(lastname, ', ', firstname) from people;
更快/更慢/与此没有区别:
<?php
$query = 'Select lastname, firstname from people';
...
$name = $data['lastname'] . ', ' . $data['firstname']; //OR
$name = sprintf("%s, %s", $data['lastname'], $data['firstname']);
?>
【问题讨论】:
-
在打开这样的问题之前做你的基准测试,这很容易
-
您为什么认为值得花时间去发现它?
-
不管哪个更快,考虑一下你可以很容易地让多台机器运行 PHP,但要拥有多台 MySQL 机器也需要付出相当大的努力。
-
@zerkms 将其添加为 CW 答案
-
设计呢?如果以后您决定需要将它们分开会怎样?