用户
 找回密码
 入住 CI 中国社区
搜索
查看: 4182|回复: 4
收起左侧

【精品分享】SQL语句注释的妙用

[复制链接]
发表于 2012-3-14 17:04:05 | 显示全部楼层 |阅读模式
本帖最后由 相知犹按剑 于 2012-3-14 17:16 编辑

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文件的哪一行。然后到那里仔细推敲代码,解决问题。

7、遗憾:
    在CI框架下,如果不使用query而使用Active Record,脱离了SQL语句,代码写起来很方便,就是不知道怎么加注释点了,有没有兄弟知道改进方案?   
   

评分

参与人数 1威望 +5 收起 理由
lynn.wang + 5

查看全部评分

发表于 2012-3-14 17:36:44 | 显示全部楼层
经典!
发表于 2012-3-14 18:51:59 | 显示全部楼层
经典!
发表于 2012-4-9 12:50:09 | 显示全部楼层
怪不得我看了咱们网站的代码注释...到处都是这个SQL注释..
发表于 2013-4-2 10:51:53 | 显示全部楼层
mark。不错哦

本版积分规则