关于MySQL通用查询日记和慢查询日记说明
副问题[/!--empirenews.page--]
【新产物上线啦】51CTO播客,随时随地,碎片化进修
MySQL中的日记包罗:错误日记、二进制日记、通用查询日记、慢查询日记等等。这里首要先容下较量常用的两个成果:通用查询日记和慢查询日记。 1)通用查询日记:记录成立的客户端毗连和执行的语句。 2)慢查询日记:记录全部执行时刻高出longquerytime秒的全部查询可能不行使索引的查询 (1)通用查询日记 在进修通用日记查询时,必要知道两个数据库中的常用呼吁:
可以查察,当前的通用日记查询是否开启,假如general_log的值为ON则为开启,为OFF则为封锁(默认环境下是封锁的)。
查察当前慢查询日记输出的名目,可所以FILE(存储在数数据库的数据文件中的hostname.log),也可所以TABLE(存储在数据库中的mysql.general_log) 题目:怎样开启MySQL通用查询日记,以及怎样配置要输出的通用日记输格外式呢? 开启通用日记查询: set global general_log=on; 封锁通用日记查询: set global general_log=off; 配置通用日记输出为表方法: set global log_output=’TABLE’; 配置通用日记输出为文件方法: set global log_output=’FILE’; 配置通用日记输出为表和文件方法:set global log_output=’FILE,TABLE’; (留意:上述呼吁只对当前世效,当MySQL重启失效,假如要永世见效,必要设置 my.cnf) my.cnf文件的设置如下: general_log=1 #为1暗示开启通用日记查询,值为0暗示封锁通用日记查询 log_output=FILE,TABLE#配置通用日记的输格外式为文件和表 (2)慢查询日记 MySQL的慢查询日记是MySQL提供的一种日记记录,用来记录在MySQL中相应时刻高出阈值的语句,详细指运行时刻高出long_query_time值的SQL,则会被记录到慢查询日记中(日记可以写入文件可能数据库表,假如对机能要求高的话,提议写文件)。默认环境下,MySQL数据库是不开启慢查询日记的,long_query_time的默认值为10(即10秒,凡是配置为1秒),即运行10秒以上的语句是慢查询语句。 一样平常来说,慢查询产生在大表(好比:一个表的数据量有几百万),且查询前提的字段没有成立索引,此时,要匹配查询前提的字段会举办全表扫描,耗时查过long_query_time, 则为慢查询语句。 题目:怎样查察当前慢查询日记的开启环境? 在MySQL中输入呼吁:
首要把握以下的几个参数: (1)slow_query_log的值为ON为开启慢查询日记,OFF则为封锁慢查询日记。 (2)slow_query_log_file 的值是记录的慢查询日记到文件中(留意:默认名为主机名.log,慢查询日记是否写入指定文件中,必要指定慢查询的输出日记名目为文件,相干呼吁为:show variables like ‘%log_output%’;去查察输出的名目)。 (3)long_query_time 指定了慢查询的阈值,即假如执行语句的时刻高出该阈值则为慢查询语句,默认值为10秒。 (4)log_queries_not_using_indexes 假如值配置为ON,则会记录全部没有操作索引的查询(留意:假如只是将log_queries_not_using_indexes配置为ON,而将slow_query_log配置为OFF,此时该配置也不会见效,即该配置见效的条件是slow_query_log的值配置为ON),一样平常在机能调优的时辰会暂且开启。 题目:配置MySQL慢查询的输出日记名目为文件照旧表,可能两者都有? 通过呼吁:
通过log_output的值可以查察到输出的名目,上面的值为TABLE。虽然,我们也可以配置输出的名目为文本,可能同时记录文本和数据库表中,配置的呼吁如下: #慢查询日记输出到表中(即mysql.slow_log)
#慢查询日记仅输出到文本中(即:slow_query_log_file指定的文件)
#慢查询日记同时输出到文本和表中
关于慢查询日记的表中的数据个文本中的数据名目说明: 慢查询的日记记录myql.slow_log表中,名目如下: 慢查询的日记记录到hostname.log文件中,名目如下: 可以看到,不管是表照旧文件,都详细记录了:是那条语句导致慢查询(sql_text),该慢查询语句的查询时刻(query_time),锁表时刻(Lock_time),以及扫描过的行数(rows_examined)等信息。 题目:怎样查询当前慢查询的语句的个数? 在MySQL中有一个变量专门记录当前慢查询语句的个数: 输入呼吁:
(留意:上述全部呼吁,假如都是通过MySQL的shell将参数配置进去,假如重启MySQL,全部配置好的参数将失效,假如想要永世的见效,必要将设置参数写入my.cnf文件中)。 (编辑:河北网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |