InnoDB:文件

Posted 开飞机的贝塔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了InnoDB:文件相关的知识,希望对你有一定的参考价值。

mysql中有多种类型的文件,每种类型的文件都有其特定的作用,下面就来说说:

参数文件:告诉Mysql实例数据库文件的位置,定义参数。

日志文件:Mysql实例对某种条件作出的响应写入文件,这个文件就是日志文件,

常见的日志文件有:错误日志、二进制日志、慢查询日志以及查询日志。

socket文件:采用Unix域套接字方式进行连接时会用到的文件,

一般,我们在本地用mysql命令行连入数据库就是采用的该方式。

pid文件:Mysql实例的进程ID文件。

Mysql表结构文件:用来存放表结构定义的文件

存储引擎文件:每个表存储引擎都会有个文件来保存该引擎相关的数据,

这些数据主要是数据和索引数据。

 

参数文件

Mysql实例启动时,回去读取参数文件,其实就是配置文件,通过读取该文件,实例就知道了哪些文件在什么位置,

知道了参数的默认值,需要注意的是,该文件可不止一个,会按照次序来读取,后读取的优先级更高。

Mysql实例没有参数也能启动成功,因为编译的时候也有定义参数,再不济源代码中也有定义参数;但是oracle没有

参数文件,不会启动成功。

oracle参数文件分二进制和文本2种,mysql中只有文本参数文件。

mysql数据目录中有个数据结构的文件,该文件记录着有实例启动的权限,如果该文件不存在,mysql不能成功启动。

 

参数

参数就是K/V形式的数据。可以通过information_schema数据库中的GLOBAL_VARIABLES表来查看所有的参数:

mysql> select * from GLOBAL_VARIABLES where VARIABLE_NAME like innodb_buffer%\G;
*************************** 1. row ***************************
 VARIABLE_NAME: INNODB_BUFFER_POOL_FILENAME
VARIABLE_VALUE: ib_buffer_pool
*************************** 2. row ***************************
 VARIABLE_NAME: INNODB_BUFFER_POOL_DUMP_NOW
VARIABLE_VALUE: OFF
*************************** 3. row ***************************
 VARIABLE_NAME: INNODB_BUFFER_POOL_LOAD_NOW
VARIABLE_VALUE: OFF
*************************** 4. row ***************************
 VARIABLE_NAME: INNODB_BUFFER_POOL_LOAD_ABORT
VARIABLE_VALUE: OFF
*************************** 5. row ***************************
 VARIABLE_NAME: INNODB_BUFFER_POOL_SIZE
VARIABLE_VALUE: 134217728
*************************** 6. row ***************************
 VARIABLE_NAME: INNODB_BUFFER_POOL_DUMP_AT_SHUTDOWN
VARIABLE_VALUE: OFF
*************************** 7. row ***************************
 VARIABLE_NAME: INNODB_BUFFER_POOL_LOAD_AT_STARTUP
VARIABLE_VALUE: OFF
*************************** 8. row ***************************
 VARIABLE_NAME: INNODB_BUFFER_POOL_INSTANCES
VARIABLE_VALUE: 8

不过还是推荐使用show variables语句来查询变量:

mysql> show variables like innodb_buffer%\G;

 

参数类型

Mysql中参数的类型分为动态参数和静态参数,静态参数不能在数据库实例运行时修改,

动态参数可以在数据库实例运行时修改,修改动态参数使用

set global|session variable_name=value或者
set @@global|@@session.variable_name=value语句

需要注意的是全局参数更改了之后,当前会话中参数不会改变,而且下次启动数据库实例时,还是会读取参数文件来初始化。

如果想在当前会话立即生效,则需要指定修改当前会话的参数。

 

日志文件

日志文件记录了影响Mysql数据库的各种活动。

常见的日志文件有:错误日志、二进制日志、慢查询日志以及查询日志

 

错误日志

该日志记录了Mysql实例启动、运行以及关闭的过程,mysql出了错,首先应该查看该文件。

可以通过log_error变量名在数据库中找到该日志的存放位置

mysql> show variables like log_error\G;
*************************** 1. row ***************************
Variable_name: log_error
        Value: /var/lib/mydata/iZeu234q4mamqhZ.err
1 row in set (0.00 sec)

 

慢查询日志

默认数据库不会启动慢查询日志。

一般运行时间超过设置阈值的SQL语句都会记录到慢查询日志中。

这个阈值为:

mysql> show variables like %long%\G;
*************************** 1. row ***************************
Variable_name: long_query_time
        Value: 10.000000

默认为10秒。需要注意的是,等于该值的SQL语句并不会被记录。

 


以上是关于InnoDB:文件的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段2——.vue文件的模板

谁能发my.ini包含innoDB引擎的代码给我,我的这个文件没有这段代码,MySQL数据库的

在Tomcat的安装目录下conf目录下的server.xml文件中增加一个xml代码片段,该代码片段中每个属性的含义与用途

代码片段 PHP,预期文件结尾,我错在哪里?

代码适用于与单个 html 文件不同的堆栈片段

Java itext为pdf 文件添加水印核心功能代码片段