日期:2014-05-16 浏览次数:20766 次
今天有同学问了一个关于注释的问题,顺藤摸瓜发现一个bug,简要说明下。
有关注释的一些QA
Q: MySQL注释有哪些格式
A:MySQL的注释格式有三种,分别是 /**/ -- 和 #。具体参见手册
????????
Q:在一些导出文件中见过/*! xxx*/,是不是注释?
A:? 需要注意的是/*! */ 这种格式,对于MySQL来说不是注释,是能够直接执行的。同时这个格式还支持指定版本号,比如/*!50518 xxxx*/ 表示,若server端版本大于5518,则后续的xxxx作为语句的一部分执行,否则忽略。
?
Q:语句中的注释会不会发给server
A:默认是不会的。一种方法是在mysql连接中加-c (--comments)参数,则会强制将注释部分也发给Server端。 另一种方法与上一条答案有关,指定一个超过server端的版本号。如果比如指定 /*!121221 xxxx*/,也可以发给server。
?
Q: 慢查询日志会不会记录注释部分
A: 慢查询会记录语句原文,如果用上面说到的两种方法将注释发给server,若记录到慢查询日志中,就会显示。(也许可以用这种方法来加入语句来源,做业务慢查询分析)
?? 不只是慢查询,如果使用statement格式的binlog,注释部分也会写入到binlog中。
?