第3章 文件

  MySQL会用到的文件

3.1 参数文件

  mysql启动的时候会读取的配置文件,也是之前装Mysql时候需要修改的配置文件,比如修改配置文件允许远程访问。MySQL的配置文件有多个,按照顺序读取,如果有重复的字段设置以最后一个为准。

  

  没有配置文件也是可以启动的,但是是按照编译时候默认的参数来启动的,既然是编译时候默认的那也就不能修改,所以还是得有一个参数文件。

3.1.1 什么是参数

  参数就是参数啊……启动的时候的配置,例如缓存池的大小,是否允许非localhost的请求访问数据。可以通过show variables结合like指令搜索查看某个想确定的参数。

3.1.2 参数类型

  参数类型分为动态和静态,动态类型的参数在运行期间可以修改,静态参数MySQL启动以后就不能修改。对动态参数的修改又分为两种,一种是session级别一种是global级别,即修改后的结果是只在当前会话生效还是全局都生效。

  首先看到当前全局的read_buffer_size的大小。

  

  然后修改了read_buffer_size的大小

  

  但是修改之后查看全局的read_buffer_size的大小并没有改变

  

  改变的是session级别的read_buffer_size

  

  如果想要对全局的动态变量进行修改需要制定@@global参数

3.2 日志文件

3.2.1 错误日志

  记录着mysql运行期间所有的错误记录,也包括警告等信息。在show variables里查看错误日志的位置。

3.2.2 慢查询日志

  用于sql语句的优化,在执行所有sql语句的时候如果某个sql语句的执行时间大于指定的阈值,就会写入慢查询日志里,通过分析慢查询日志可以找到需要优化的sql语句。

  我电脑上是14.14的版本,和书上的版本不一样,相关的变量的名称也不一样。所以我首先检索和slow相关的所有变量,可以看到下面两个个变量是和书上的变量相对应的,是否开启慢查询和慢查询日志的位置。

  long_query_time对应着慢查询的阈值。

  

  如果某些查询没有使用索引,那么即使他的查询时间没有超过阈值,但是他仍然有优化的空间,所以也希望把没有使用索引的sql语句放到查询日志里。log_queries_not_using_indexes对应着开启这一功能。

 

  

  随着MySQL运行时间的增长,慢查询日志的长度也会增加,人肉去看这个日志就会不现实,为此MySQL提供了两种优化方案。

  一种是使用mysqldumpslow命令,该命令提供了对慢查询日志的检索功能。

  一种是不直接查看慢查询的文本日志,而是查看慢查日志记录的对应的表里。该表存储在mysql.slow_log的位置。

  这个太乱了,我还是喜欢直观的。

  这个就很不错

  但是默认是不写在这个表里的,是写在文件里的。其实不只是慢查询的日志默认写在文件里,所有的日志都是默认写在文件里的,但是可以设置成输出到表里,虽然这样会增加一定的存储开销。通过使用上面提到的set命令,并把作用域设置成global使所有会话的所有日志都输出到表里。

  

  开启慢查询的目的是为了优化sql语句,其中之一的优化方式是分析逻辑读取和物理读取的比例。物理读取是从磁盘读,逻辑读取既包含磁盘也包含缓冲池。  

3.2.3 查询日志

  所有的sql操作都被记录在这个日志里,无论他是否被正确执行。

  首先要找到这个查询日志的文件的位置,书上没有写叫啥,我就暴力的搜索了含log的所有variables。

  

  原来它叫general_log,而且默认是关闭的,先打开。本着节省空间的目的,我决定只在session里打开。

  

  但是他不让,必须是global的

  

  现在在看这个gerenal_log已经打开了

  

  随便查询一个语句,然后vi看一哈。

  

  成了!

3.2.4 二进制日志

  记录了所有对数据库进行修改的记录,只包括update delete操作。

  

  

猜你喜欢

转载自www.cnblogs.com/AshOfTime/p/10426019.html