SQL语句注释的妙用

来源:互联网 发布:代账用什么软件 编辑:程序博客网 时间:2024/05/31 18:54
mysql里面的SQL语句,里面是可以加注释的
例如:
"select * from author where authorid=1"可以写成
"/* get a author  */select * from author where authorid=1"
照样可以正常执行。有人说,这有鸟用啊?那好看下面:
1、在PHP里面的设定sql语句
$sql = '/* FILE: ' . __FILE__ . ', LINE: ' . __LINE__ . ' */ ' . "SELECT managerid,managername,realname FROM manager WHERE isbad=0 and managerid={$managerid}";

2、在mysql的my.cnf里面加上这两行
log_slow_queries = /var/log/mysql/slow.log
long_query_time = 10

3、重启mysql

4、# tail /var/log/slow.log
假设刚才的SQL语句是执行时间超过10秒的慢SQL,那么你可以看到类似这样的信息
SET timestamp=1331715594;
/* FILE: /var/www/jjwxc.net/www.jjwxc/backend/sms.php, LINE: 258 */ SELECT managerid,managername,realname FROM manager WHERE isbad=0 and managerid=1

5、现在有人明白意义了吗?没有明白,好,那我继续解释。

6、访问量大或者程序写得烂的时候,数据库系统往往会出现进程过多的情况,很多mysql语句排队等待执行,这个时候,找到最耗资源的SQL语句是当务之急。有了SQL注释,我们能够迅速定位到卡死系统的sql语句是哪个php文件的哪一行。然后到那里仔细推敲代码,解决问题。