分类 - SQL

2016-08-02 13:26:50    195    0    0

一、sql书写规范:

  1、sql语句的所有表名、字段名全部小写,系统保留字、内置函数名、sql保留字大写。
  
  2、连接符or、in、and、以及=、<=、>=等前后加上一个空格。
  
  3、对较为复杂的sql语句加上注释,说明算法、功能。
  
   注释风格:注释单独成行、放在语句前面。
    (1)   应对不易理解的分支条件表达式加注释;
    (2)   对重要的计算应说明其功能;
    (3)   过长的函数实现,应将其语句按实现的功能分段加以概括性说明;
    (4)   每条SQL语句均应有注释说明(表名、字段名)。
    (5)  常量及变量注释时,应注释被保存值的含义(必须),合法取值的范围(可选)
    (6)  可采用单行/多行注释。(-- 或 /* */ 方式)
  
  4、SQL语句的缩进风格
  
    (1)  一行有多列,超过80个字符时,基于列对齐原则,采用下行缩进
    (2)  where子句书写时,每个条件占一行,语句另起一行时,以保留字或者连接符开始,连接符右对齐。
  
  5、多表连接时,使用表的别名来引用列。
  
  6、供别的文件或函数调用的函数,绝不应使用全局变量交换数据;
    
    如例(1)
  

二、书写优化性能建议

  1、避免嵌套连接。例如:A = B and B = C and C = D
  
  2、where条件中尽量减少使用常量比较,改用主机变量
  
  3、系统可能选择基于规则的优化器,所以将结果集返回数据量小的表作为驱动表(from后边最后一个表)。
  
  4、大量的排序操作影响系统性能,所以尽量减少order by和group by排序操作。
  
   如必须使用排序操作,请遵循如下规则:
  
    (1)  排序尽量建立在有索引的列上。
    (2)  如结果集不需唯一,使用union all代替union。
  
  5、索引的使用。
    
    (1)  尽量避免对索引列进行计算。如对索引列计算较多,请提请系统管理员建立函数索引。
    (2)  尽量注意比较值与索引列数据类型的一致性。
    (3)  对于复合索引,SQL

2017-06-20 11:29:15    175    0    0

慢查询日志概念

     MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。long_query_time的默认值为10,意思是运行10S以上的语句。默认情况下,Mysql数据库并不启动慢查询日志,需要我们手动来设置这个参数,当然,如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志会或多或少带来一定的性能影响。慢查询日志支持将日志记录写入文件,也支持将日志记录写入数据库表。

 

官方文档,关于慢查询的日志介绍如下(部分资料,具体参考官方相关链接):

The slow query log consists of SQL statements that took more than long_query_time seconds to execute and required at least min_examined_row_limit rows to be examined. The minimum and default values of long_query_time are 0 and 10, respectively. The value can be specified to a resolution of microseconds. For logging to a file, times are written including the microseconds part. For logging to tables, only integer times are written; the microseconds part is ignored.

By default, administrative statements are not logged, nor are queries that do not use indexes for lookups. This behavior can be changed usinglog_slow_admin_statements and log_queries_not_using_indexes, as described later.

 

 

慢查询日志相关参数

 

 

M