MySQL理论

mysqld服务器程序工作特性的定义方式:

1.       命令行选项:重启失效,对当前会话有效。

2.       配置文件参数:需重启才能生效。

服务器参数/变量:设定MySQL的运行特性;

         查看运行特性的方法:

         mysql> SHOW GLOBAL|[SESSION] VARIABLES [LIKE clause];

状态(统计)参数/变量:保存MySQL运行中的统计数据或状态数据,无法更改,只能重置。

         查看状态参数的方法:

         mysql> SHOW GLOBA|[SESSION] STATUS [LIKE clause];

        

显示单个变量设定值的方法:

扫描二维码关注公众号,回复: 3069979 查看本文章

         mysql> SELECT @@[global.|session.]system_var_name

                   %:匹配任意长度的任意字符;

                   _:匹配任意单个字符;

        

变量/参数级别:

         全局:为所有会话设定默认。管理员可修改。

         会话:跟单个会话相关;会话建立会从全局继承;

        

服务器变量的调整方式:

         运行时修改:

                   global:仅对修改后新建立的会话有效。

                   session:仅对当前会话有效,且立即生效。

         启动前通过配置文件修改:

                   重启后生效;

运行时修改变量值操作方法:

         SET [GLOBAL | SESSION] system_var_name = expr

         SET [@@global. | @@session. | @@]system_var_name = expr

例:

MariaDB [(none)]> SHOW VARIABLES LIKE 'innodb%';

MariaDB [(none)]> SHOW VARIABLES LIKE 'innodb_file%';

+--------------------------+----------+

| Variable_name            | Value    |

+--------------------------+----------+

| innodb_file_format       | Antelope |

| innodb_file_format_check | ON       |

| innodb_file_format_max   | Antelope |

| innodb_file_per_table    | OFF      |

+--------------------------+----------+

4 rows in set (0.00 sec)

MariaDB [(none)]> SELECT @@global.innodb_file_per_table;       #查看特定变量的值

+--------------------------------+

| @@global.innodb_file_per_table |

+--------------------------------+

|                              0 |

+--------------------------------+

1 row in set (0.00 sec)

什么是事务

一组原子性的SQL查询、或者是一个或多个SQL语句组成的独立工作单元;

         通俗地讲:假如一个操作分两个步骤,两个步骤都成功才算一个事务执行成功。有一个不成功都不算成功。

事务日志的保存位置:

磁盘上一段连续的空间。事务日志有多个文件,必须成组出现,一般两个,三个也可以。一个文件写满写第二个文件。第一个文件的内容立即写入磁盘中。

         事务先追加至事务日志,操作全部完成后同步到磁盘上。

事务日志定义:

         放在mysqld配置段中,或者mariadb或者server配置段中。

         innodb_log_files_in_group                事务日志文件

         innodb_log_group_home_dir           事务日志存放路径,默认存放在数据文件下。

         innodb_log_file_size                           事务日志大小,字节为单位

         innodb_mirrored_log_groups          事务日志有几个境像组。默认1个,放在不同的存储设备中。

                                    

如果一个存储引擎满足ACID测试,则说明它支持事务:

         AAUTOMICITY,原子性;整个事务中的所有操作要么全部成功执行,要么全部失败后回滚;

         CCONSISTENCY,一致性;数据库总是应该从一个一致性状态转为另一个一致性状态;

         IISOLATION,隔离性;一个事务所做出的操作在提交之前,是否能为其它事务可见;出于保证并发操作之目的,隔离有多种级别;

         DDURABILITY,持久性;事务一旦提交,其所做出的修改会永久保存;

事务的控制:

         自动提交事务:

mysql默认自动启动事务,每个操作都是一个事务,这对服务器性能有所影响,通常需要关掉,自己显式启动事务,显式关闭事务。

         mysql> SELECT @@autocommit;             #查询当前事务级别

         +------------------------+

         | @@autocommit           |

         +------------------------+

         |            1           |

         +------------------------+

        

         mysql> SET @@session.autocommit=0               #关闭单语句事务

         MariaDB [mydb]> START TRANSACTION;                 #开启事务

手动控制事务:

                  启动:START TRANSACTION

                  提交:COMMIT      提交后无法撤消

                  回滚:ROLLBACK

                  设置断点:SAVEPOINT identifier

                  事务回滚:ROLLBACK [WORK] TO [SAVEPOINT] identifier

                  释放断点:RELEASE SAVEPOINT identifier

例:

MariaDB [mydb]> select * from tbl1;

+------+--------------+------+

| id   | name         | age  |

+------+--------------+------+

|    1 | tom          |   11 |

|    2 | jerry        |   12 |

|    3 | obama        |   10 |

|    4 | dasheng      |  127 |

|    5 | bajie        |   20 |

|    7 | xuedao Laozu |   67 |

+------+--------------+------+

6 rows in set (0.00 sec)

MariaDB [mydb]> DELETE FROM tbl1 WHERE name='bajie';

Query OK, 1 row affected (0.00 sec)

MariaDB [mydb]> select * from tbl1;

+------+--------------+------+

| id   | name         | age  |

+------+--------------+------+

|    1 | tom          |   11 |

|    2 | jerry        |   12 |

|    3 | obama        |   10 |

|    4 | dasheng      |  127 |

|    7 | xuedao Laozu |   67 |

+------+--------------+------+

5 rows in set (0.00 sec)

MariaDB [mydb]> ROLLBACK;

Query OK, 0 rows affected (0.00 sec)

MariaDB [mydb]> select * from tbl1;

+------+--------------+------+

| id   | name         | age  |

+------+--------------+------+

|    1 | tom          |   11 |

|    2 | jerry        |   12 |

|    3 | obama        |   10 |

|    4 | dasheng      |  127 |

|    5 | bajie        |   20 |

|    7 | xuedao Laozu |   67 |

+------+--------------+------+

6 rows in set (0.00 sec)

MariaDB [mydb]> UPDATE tbl1 SET id=5 WHERE name=

    -> 'bajie';

Query OK, 0 rows affected (0.00 sec)

Rows matched: 1  Changed: 0  Warnings: 0

MariaDB [mydb]> SAVEPOINT first;

Query OK, 0 rows affected (0.00 sec)

MariaDB [mydb]> DELETE FROM tbl1 WHERE id=1;

Query OK, 1 row affected (0.00 sec)

MariaDB [mydb]> SAVEPOINT second;

Query OK, 0 rows affected (0.00 sec)

MariaDB [mydb]> DELETE FROM tbl1 WHERE id=2;

Query OK, 1 row affected (0.00 sec)

MariaDB [mydb]> select * from tbl1;

+------+--------------+------+

| id   | name         | age  |

+------+--------------+------+

|    3 | obama        |   10 |

|    4 | dasheng      |  127 |

|    5 | bajie        |   20 |

|    7 | xuedao Laozu |   67 |

+------+--------------+------+

4 rows in set (0.00 sec)

MariaDB [mydb]> ROLLBACK TO second;

Query OK, 0 rows affected (0.00 sec)

MariaDB [mydb]> select * from tbl1;

+------+--------------+------+

| id   | name         | age  |

+------+--------------+------+

|    2 | jerry        |   12 |

|    3 | obama        |   10 |

|    4 | dasheng      |  127 |

|    5 | bajie        |   20 |

|    7 | xuedao Laozu |   67 |

+------+--------------+------+

5 rows in set (0.00 sec)

MariaDB [mydb]> ROLLBACK TO first;

Query OK, 0 rows affected (0.00 sec)

MariaDB [mydb]> select * from tbl1;

+------+--------------+------+

| id   | name         | age  |

+------+--------------+------+

|    1 | tom          |   11 |

|    2 | jerry        |   12 |

|    3 | obama        |   10 |

|    4 | dasheng      |  127 |

|    5 | bajie        |   20 |

|    7 | xuedao Laozu |   67 |

+------+--------------+------+

6 rows in set (0.00 sec)

事务隔离级别:

         READ-UNCOMMITTED:读未提交 --> 脏读   隔离性最差,并发性最高,事务安全性无法保证,尽量不使用。

         READ-COMMITTED:读提交--> 不可重复读;

         REPEATABLE-READ:可重复读 --> 幻读;

         SERIALIZABLE:串行化    只有别的用户确定后才可以读。最高隔离级别,并发性最低级别。

        

         mysql> SELECT @@session.tx_isolation;

         +----------------------------------+

         | @@session.tx_isolation |

         +----------------------------------+

         | REPEATABLE-READ         |

         +----------------------------------+

        

         查看InnoDB存储引擎的状态信息:

                   SHOW ENGINE innodb STATUS;

                           

MariaDB [mydb]> SELECT @@session.tx_isolation;                #查看当前事务隔离级别

+------------------------+

| @@session.tx_isolation |

+------------------------+

| REPEATABLE-READ        |

+------------------------+

MariaDB [mydb]> SET @@session.tx_isolation='READ-UNCOMMITTED';             #设置事务隔离级别

Query OK, 0 rows affected (0.00 sec)

MariaDB [mydb]> SELECT @@session.tx_isolation;

+------------------------+

| @@session.tx_isolation |

+------------------------+

| READ-UNCOMMITTED       |

+------------------------+

1 row in set (0.00 sec)

数据库的存储引擎:

         InnoDBInnoBase特性:

                   支持:Percona-XtraDB, Supports transactions(支持事务), row-level locking(行级锁), and foreign keys(外键)

                   数据存储于表空间(table space)中,有两种存储方式:

1.       所有数据库中的所有类型为InnoDB的表的数据和索引存储于同一个表空间中。一个表空间对应磁盘中的一个文件,支持分散在多个文件中,一般是串行相加。

表空间是一个黑盒,用户无须了解,也不需要知道内部怎么运作。table space可以理解为建构在文件系统上的又一个文件系统。表空间内部可实现更为强大的数据组织和编排逻辑,它把数据和索引保存在一起,所以也可以支持聚集索引(聚簇索引),因此它的主键索引也是一个是聚集索引,其它索引(辅助索引)都指向此索引来辅助工作。

2.       每表使用单独的表空间文件

innodb_file_per_table=ON定义。dataindexex都保存在一起。更加高级的方式,也是innodb表空间的高级功能支持时的默认使用类型。也支持每个表空间多个文件。

每表的数据文件(数据和索引,存储于数据库目录)存储于自己专用的表空间文件中,并存储于数据库目录下: tbl_name.ibd

                   表结构的定义:在数据库目录,tbl_name.frm

                   事务型存储引擎,适合对事务要求较高的场景中(在线事务处理,如电商);但较适用于处理大量短期小事务(事务执行时间不宜太长,语句不能太多,太多有可能导致死锁);

                   基于MVCCMutli Version Concurrency Control)支持高并发;支持四个隔离级别,默认级别为REPEATABLE-READ;间隙锁以防止幻读;

                   使用聚集索引(主键索引)

                            聚集索引:数据和索引保存在一起。数据存在索引所在处,找到索引就找到数据了。

                            非聚集索引:数据和索引分开存放。找到索引之后,只能找到数据所在处的指针,装载数据所在的磁盘块才找到数据

                   支持”自适应Hash索引“

                   锁粒度:行级锁(只锁定需要操作的行);间隙锁(要操作行之间的间隙);

         总结:

                   数据存储:表空间;

                   并发实现:通过MVCC,间隙锁,行级锁;

                   支持的索引类型:聚集索引、辅助索引;

                   性能特性:预读操作、内存数据缓冲、内存索引缓存、自适应Hash索引、插入操作缓存区;

                   备份:支持基于工具做热备;

        

         查看InnoDB存储引擎的内部状态信息:

                  SHOW ENGINE INNODB STATUS;

MyISAM特性:

         支持全文索引(FULLTEXT index)、数据压缩、空间函数(GIS,辐射索引,按空间,如附近的人);

         不支持事务,不支持外键

         锁粒度:表级锁  产生锁竞争的机会少

         崩溃后无法保证表安全恢复        

        

         适用场景:只读或读多写少的场景、较小的表(以保证崩溃后恢复的时间较短);

        

         文件:每个表有三个文件,存储于数据库目录中

                   tbl_name.frm:表格式定义;

                   tbl_name.MYD:数据文件;

                   tbl_name.MYI:索引文件;

                  

         特性:

                   加锁和并发:表级锁;

                   修复:手动或自动修复、但可能会丢失数据;

                   索引:非聚集索引;

                   延迟索引更新;

                   表压缩;压缩后无法更改。

                  

         行格式:

                    {DEFAULT|DYNAMIC|FIXED|COMPRESSED|REDUNDANT|COMPACT}

mysql的索引:

         索引:提取索引的创建在的表上字段中的数据,构建出一个独特的数据结构

         索引的作用:加速查询操作;副作用:降低写操作性能;

                   表中数据子集:把表中某个或某些字段的数据提取出来另存为一个特定数据结构组织的数据;

                            某个字段或某些字段:WHERE子句中用到的字段;

索引类型:B+ TREEHASH

         B+ TREE:顺序存储,每一个叶子结点到根结点的距离相同;左前缀索引,适合于范围类型的数据查询;

                   适用于B+ TREE索引的查询类型:全键值、键值范围或键前缀;

                            全值匹配:精确匹配某个值;

                                     WHERE COLUMN = 'value';

                            匹配最左前缀:只精确起头的部分;

                                     WEHRE COLUMN LIKE 'PREFIX%';                                                

                            匹配范围值:

                            精确匹配某一列,范围匹配另一列;

                            只用访问索引的查询:覆盖索引;

                                     index(Name)

                                     SELECT Name FROM students WHERE Name LIKE 'L%';

                                                                                   

                   不适用B+ TREE索引:

                            如果查条件不是从最左侧列开始,索引无效;

                                     index(age,Fname), WHERE Fname='Jerry';    , WHERE age>30 AND Fname='Smith';

                            不能跳过索引中的某列;

                                     index(name,age,gender)

                                               WHERE name='black' and age > 30;

                                              WHERE name='black' AND gender='F';

                            如果查询中的某个列是为范围查询,那么其右侧的列都无法再使用索引优化查询;

                                     WHERE age>30 AND Fname='Smith';

         Hash索引:基于哈希表实现,特别适用于值的精确匹配查询;

                   适用场景:

                            只支持等值比较查询,例如=, IN(), <=>

                   不用场景:

                            所有非精确值查询;MySQL仅对memory存储引擎支持显式的hash索引;

日志类型:

         查询日志:general_log

         慢查询日志:log_slow_queries

         错误日志:log_error log_warnings

         二进制日志:binlog

         中继日志:relay_log

         事务日志:innodb_log

1、查询日志(增删改查都会涉及到查询,一般不开启,严重影响性能)

         记录查询语句,日志存储位置支持两种:

         1)文件:file

         2)表:table (mysql.general_log)

         查询日志的定义:

                   general_log={ON|OFF}

                   general_log_file=HOSTNAME.log(相对路径:通常相对数据目录而言。或使用绝对路径保存在指定位置)

                   log_output={FILE|TABLE|NONE}  也可以保存在filetable中,对查询日志没多大必要启动。

                            FILE:记录在文件中

                            TABLE:记录在general_log表中

                            NONE:不记录

                            FILE,TABLE:同时记录在文件和表中

                           

2、慢查询日志  通常为了排查性能问题都应该记录

慢查询:运行时间超出指定时长的查询(默认时长 10s);

         long_query_time

存储位置:

         文件:FILE

         表:TABLEmysql.slow_log

慢查询日志的定义:

log_slow_queries={ON|OFF}建议修改配置文件永久生效

slow_query_log={ON|OFF}

slow_query_log_file=   保存位置

log_output={FILE|TABLE|NONE}   指明记录的位置

log_slow_rate_limit                  记录日志时的速度限制

log_slow_verbosity          记录日志的详细程度

基于优化后常用选项,可用于排查定位故障

log_slow_filter=admin,filesort,filesort_on_disk,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk

                   admin:基于管理

                   filesort:基于文件的排序

                   filesort on disk:基于磁盘的文件排序

                   full_join:全连接

                   full_scan:全表扫描

                   query_cache:查询缓存

                   query_cache_miss:查询缓存未命中

                   tmp_table:

                   tmp_table_on_disk:

MariaDB [(none)]> SELECT @@global.long_query_time;                #慢查询日志默认时长

+--------------------------+

| @@global.long_query_time |

+--------------------------+

|                10.000000 |

+--------------------------+

1 row in set (0.00 sec)

3、错误日志  rpm包安装默认启用

         记录信息:

                   (1) mysqld启动和关闭过程 输出的信息;

                   (2) mysqld运行中产生的错误信息;

                   (3) event scheduler运行时产生的信息;

                   (4) 主从复制架构中,从服务器复制线程启动时产生的日志;

         错误日志定义方法:    

         log_error=/var/log/mariadb/mariadb.log|OFF

         log_warnings={ON|OFF}

                           

4、二进制日志

         用于记录引起数据改变或存在引起数据改变的潜在可能性的语句(STATEMENT)或改变后的结果(ROW),也可能是二者混合;极其重要的日志。

         强烈不建议和数据文件放一起。

         功用:“重放”

         二进制日志的格式定义(全局功能):

                   二进制日志有三种格式:STATEMENT|ROW|MIXED

                  binlog_format={STATEMENT|ROW|MIXED} 

                   STATEMENT:语句;

                   ROW:行;语句执行结果(有时语句的执行结果会变)

                   MIXED:混编;由mysql自动判定使用哪种格式

         查看二进制日志文件列表:

                  SHOW MASTER|BINARY LOGS;

                   mysql服务重启一次会滚动一次日志,无论上一个日志写入多少内容,都重新创建一个新的日志文件。

                   flush logs;命令也会滚动日志

                   单个日志文件默认最大1G,达到最大后自动滚动新文件。

MariaDB [(none)]> SHOW BINARY LOGS;                 查看当前使用哪个二进制文件

+------------------+-----------+

| Log_name         | File_size |

+------------------+-----------+

| mysql-bin.000001 |       601 |

| mysql-bin.000002 |       443 |

+------------------+-----------+

2 rows in set (0.00 sec)

MariaDB [(none)]> SHOW MASTER LOGS;                查看当前使用哪个二进制文件

+------------------+-----------+

| Log_name         | File_size |

+------------------+-----------+

| mysql-bin.000001 |       601 |

| mysql-bin.000002 |       443 |

+------------------+-----------+

2 rows in set (0.00 sec)

         查看当前正在使用的二进制日志文件:

                   SHOW MASTER STATUS

                                    

MariaDB [mydb]> SHOW MASTER STATUS;

+------------------+----------+--------------+------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000002 |      443 |              |                  |

+------------------+----------+--------------+------------------+

1 row in set (0.00 sec)

                                    

         查看二进制 日志文件中的事件:

                   SHOW BINLOG EVENTS    [IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count]

                                    

                                    

MariaDB [mydb]> SHOW BINLOG EVENTS;              查看二进制日志事件

+------------------+-----+-------------+-----------+-------------+----------------------------------------------------------------------------------------------------------+

| Log_name         | Pos | Event_type  | Server_id | End_log_pos | Info                                                                                                     |

+------------------+-----+-------------+-----------+-------------+----------------------------------------------------------------------------------------------------------+

| mysql-bin.000001 |   4 | Format_desc |         1 |         245 | Server ver: 5.5.56-MariaDB, Binlog ver: 4                                                                |

| mysql-bin.000001 | 245 | Query       |         1 |         424 | grant replication slave,replication client on *.* to 'master'@'192.168.200.%' identified by 'masterpass' |

| mysql-bin.000001 | 424 | Query       |         1 |         499 | flush privileges                                                                                         |

| mysql-bin.000001 | 499 | Query       |         1 |         582 | create database abcd                                                                                     |

| mysql-bin.000001 | 582 | Stop        |         1 |         601 |                                                                                                          |

+------------------+-----+-------------+-----------+-------------+----------------------------------------------------------------------------------------------------------+

5 rows in set (0.00 sec)

MariaDB [mydb]> SHOW BINLOG EVENTS in 'mysql-bin.000001';           查看哪个二进制日志的事件

+------------------+-----+-------------+-----------+-------------+----------------------------------------------------------------------------------------------------------+

| Log_name         | Pos | Event_type  | Server_id | End_log_pos | Info                                                                                                     |

+------------------+-----+-------------+-----------+-------------+----------------------------------------------------------------------------------------------------------+

| mysql-bin.000001 |   4 | Format_desc |         1 |         245 | Server ver: 5.5.56-MariaDB, Binlog ver: 4                                                                |

| mysql-bin.000001 | 245 | Query       |         1 |         424 | grant replication slave,replication client on *.* to 'master'@'192.168.200.%' identified by 'masterpass' |

| mysql-bin.000001 | 424 | Query       |         1 |         499 | flush privileges                                                                                         |

| mysql-bin.000001 | 499 | Query       |         1 |         582 | create database abcd                                                                                     |

| mysql-bin.000001 | 582 | Stop        |         1 |         601 |                                                                                                          |

+------------------+-----+-------------+-----------+-------------+----------------------------------------------------------------------------------------------------------+

5 rows in set (0.00 sec)

         Pos:起始位置

         End_log_pos:结束位置

        

MariaDB [mydb]> SHOW BINLOG EVENTS in 'mysql-bin.000001' FROM 499;

+------------------+-----+------------+-----------+-------------+----------------------+

| Log_name         | Pos | Event_type | Server_id | End_log_pos | Info                 |

+------------------+-----+------------+-----------+-------------+----------------------+

| mysql-bin.000001 | 499 | Query      |         1 |         582 | create database abcd |

| mysql-bin.000001 | 582 | Stop       |         1 |         601 |                      |

+------------------+-----+------------+-----------+-------------+----------------------+

2 rows in set (0.00 sec)

MariaDB [mydb]> SHOW BINLOG EVENTS in 'mysql-bin.000001' FROM 499 LIMIT 1;

+------------------+-----+------------+-----------+-------------+----------------------+

| Log_name         | Pos | Event_type | Server_id | End_log_pos | Info                 |

+------------------+-----+------------+-----------+-------------+----------------------+

| mysql-bin.000001 | 499 | Query      |         1 |         582 | create database abcd |

+------------------+-----+------------+-----------+-------------+----------------------+

1 row in set (0.00 sec)

         查询二进制日志是否启动  select @@global.log_bin; 若查询结果不为空则是开启。

                                    

         服务器变量:

                   log_bin=/PATH/TO/BIN_LOG_FILE|OFF

                            只读全局变量,只能修改配置文件重启生效。

                            放在mysqld配置段

                            确保二进制日志保存目录属于mysql用户和组

                  session.sql_log_bin={ON|OFF}

                            控制某会话中的“写”操作语句是否会被记录于日志文件中;

                            MariaDB [mydb]> SET @@session.sql_log_bin=0;

                   max_binlog_size=1073741824

                            日志文件最大大小,建议可以改的更小一些。根据需求定义。

                   sync_binlog={1|0}

                            每个修改日志的操作都是先保存到内存中,每隔一段时间同步到磁盘一次。

                            该选项控制只要有语句提交时,是不是立即同步到磁盘上。

                            立即同步:所有操作都会保存,对数据安全性很重要,但是会影响磁盘IO性能。

                            缓存后隔一段时间同步:会提升性能,但需要恢复数据库数据时可能会丢失部分数据(保存到内存中,未保存到二进制日志文件的那部分)。

命令提示符查看二进制日志:

                   mysqlbinlog

                            --start-datetime=    开始时间         时间定义:YYYY-MM-DD hh:mm:ss

                            --stop-datetime=     结束时间

                            -j, --start-position=#                            起始位置

                             --stop-position=#                               结束位置

                            查看其它服务器二进制日志:

                             --user, --host, --password

                           

         二进制日志事件格式:

                   # at 553

                   #160831  9:56:08 server id 1  end_log_pos 624   Query   thread_id=2     exec_time=0     error_code=0

                   SET TIMESTAMP=1472608568/*!*/;

                   BEGIN

                   /*!*/;

                  

                   事件的起始位置:# at 553

                   事件发生的日期时间:#160831  9:56:08

                   事件发生的服务器idserver id 1

                   事件的结束位置:end_log_pos 624

                   事件的类型:Query

                   事件发生时所在服务器执行此事件的线程的ID thread_id=2

                   语句的时间戳与将其写入二进制日志文件中的时间差:exec_time=0             没有小数的概念

                   错误代码:error_code=0

                   事件内容:SET TIMESTAMP=1472608568/*!*/;

[root@node1 ~]# mysqlbinlog /data/mysql/logs/mysql-bin.000002

# at 313

#180603 12:42:43 server id 1  end_log_pos 416          Query       thread_id=5     exec_time=0    error_code=0

use `mydb`/*!*/;

SET TIMESTAMP=1528000963/*!*/;

UPDATE tbl1 SET id=5 WHERE name=

'bajie'

/*!*/;

[root@node1 ~]# mysqlbinlog --start-datetime="2018-06-01 10:00:00" /data/mysql/logs/mysql-bin.000002

中继日志:支撑主从复制进行的支撑工具

         从服务器上记录下来从主服务器的二进制日志文件同步过来的事件;重放完即清理。

事务日志:只对事务型存储引擎有用

         事务型存储引擎innodb用于保证事务特性的日志文件:

                   redo log

                   undo log


猜你喜欢

转载自blog.51cto.com/11975865/2170749