数据库端的名字和姓氏的大写,在从数据库中获取数据后从数据库或PHP函数获取?

时间:2011-02-22 11:26:46

标签: php mysql

哪一种方法更快:

a)使用数据库函数在数据库端利用所需格式后从数据库中获取名字和姓氏:

SELECT CONCAT(UPPER(SUBSTRING(first_name, 1, 1)), LOWER(SUBSTRING(first_name, 2)), ' ', UPPER(SUBSTRING(last_name, 1, 1)), LOWER(SUBSTRING(last_name, 2))) AS user_name FROM emp;

<?php
$name = $user_name; // Robin Hood

b)从数据库中获取名字和姓氏,然后使用PHP函数对其进行大写。

SELECT first_name, last_name FROM emp;

<?php
$name = ucfirst($first_name).' '.ucfirst($last_name); // Robin Hood

以下是时间测量,如果我在for循环中运行两个方法5000次,只是为了测试速度。

(a)WITH DB 开始时间= 1298468915

结束时间= 1298468922

Diff = 7

(b)使用PHP 开始时间= 1298468922

结束时间= 1298468930

Diff = 8

还有更多,

(a)WITH DB 开始时间= 1298469109

结束时间= 1298469115

Diff = 6

(b)使用PHP 开始时间= 1298469115

结束时间= 1298469122

Diff = 7

还有更多,

(a)WITH DB 开始时间= 1298469293

结束时间= 1298469300

Diff = 7

(b)使用PHP 开始时间= 1298469300

结束时间= 1298469307

Diff = 7

2 个答案:

答案 0 :(得分:1)

首先,我假设你没有为性能做这件事,因为这是最糟糕的一种优化 - 即使考虑哪个更快的时间比所有周期更快的时间,无论哪个,都会永远保存。

也就是说,在我看来,PHP方法及其单个内置函数调用可能优于MySQL方法,并且还具有提供更清晰查询的好处。

无论您做什么,都要尽量在整个申请过程中保持一致。

答案 1 :(得分:0)

由于PHP提供了一个单独的功能来完成你需要的东西而且MySQL需要多个函数调用,我会说PHP的方式是“更快”。然而,最终的收益是如此之少,以至于你甚至无法可靠地对其进行基准测试。 我建议您专注于代码,数据库架构,DBMS配置等中对应用程序性能影响较大的其他内容。