Mon*_*eed 8 php mysql performance benchmarking
我只看到这个艺术品
在这种情况下,我需要知道什么是最佳的绩效
如果在查询中的陈述
SELECT *,if( status = 1 , "active" ,"unactive") as status_val FROM comments
VS
<?php
$x = mysql_query("SELECT * FROM comments");
while( $res = mysql_fetch_assoc( $x ) ){
if( $x['status'] == 1 ){
$status_val = 'active';
}else{
$status_val = 'unactive';
}
}
?>
Run Code Online (Sandbox Code Playgroud)
从字符串切10
SELECT * , SUBSTR(comment, 0, 10) as min_comment FROM comments
VS
<?php
$x = mysql_query("SELECT * FROM comments");
while( $res = mysql_fetch_assoc( $x ) ){
$min_comment = substr( $x['comment'],0,10 ) ;
}
?>
Run Code Online (Sandbox Code Playgroud)
等等????? 而当我使用MySQL的函数或PHP函数?
这是对您的问题的一个很好的描述: DoingcalculationsinMySQLvsPHP
对于第二个示例,速度问题可能很重要。首先你不知道你的评论有多大,所以万一
$x = mysql_query("SELECT * FROM comments");
while( $res = mysql_fetch_assoc( $x ) ){
$min_comment = substr( $x['comment'],0,10 ) ;
}
Run Code Online (Sandbox Code Playgroud)
您要求服务器返回所有内容(这里我指的是评论的整个长度),这可能很重要。乘以表中的行数,数据量可能相当大,您必须在 php 和 sql 之间传输这些数据。在第二种情况下,SELECT * , SUBSTR(comment, 0, 10) as min_comment FROM comments
这已经在服务器上完成,并且不需要额外的内存。
对于第一个示例,我认为在 sql 端执行它也更好,因为之后您仍然需要执行额外的循环。除此之外,将要阅读您的代码的人可能会感到困惑为什么您到底需要该代码。
归档时间: |
|
查看次数: |
6787 次 |
最近记录: |