一、多种日志

mysql生成或者相关联的日志文件种类繁多,本节重点关注与mysql数据库服务相关的几类日志文件。

错误日志(error  log) :记录mysql服务进程mysqld在启动/关闭或者运行过程中遇到的错误信息;

查询日志(query log) :分为两类:

普通查询日志(general query log):记录客户端连接信息和执行sql语句信息;

慢查询日志(slow query log): 记录执行时间超过指定值(long_query_time)的sql语句;或者没有走索引的日志,优化这个日志是dna的工作之一。

二进制日志(binary log):记录数据被修改的相关信息;

这里配置的error log:

这里配置的binary log:

这里查看查询日志query log:

打开参数 SET global  general_log =on;

查看日志内容:

quit 退出;connect 连接 ;quert:查询

慢查询show query log:

将查询超过1秒的查询,写入:/data/3307/slow.log中

没有使用索引的数据记录,参数是

另外: log_bin表示记录binlog日志;sql_log_bin 表示临时不记录日志,比如恢复数据的时候

二.二进制日志(binary log)中的模式

2.1 statement level模式:每一条会修改的sql都会记录binlog中,slave在复制的时候sql进程会解析成和原来master端执行过程的相同的sql来再次执行。不需要大量日,节约I/O,性能提高。有上下问的信息。在此种模式下,在新功能不断增加,此模式并不是很理想,会出现各种困难。

2.2 rowlevel 模式:日志中会记录成每一行数据被修改的形式,然后再slave端再对相同的数据进行修改。 这种模式会非常清楚的记录下每一行数据修改的细节,而且不会出现某些特定情况下的存储过程,或function,以及trigger的调用和触发无法被正确复制的问题。例如update 一条语句,执行之后,日志中记录的不是这条update事件(mysql以事件的形式来记录binlog日志),而是这条语句所更新的每一天记录的变化情况,这样就记录很多事件,日志量就非常大。

2.3 mixed模式:是前两种模式的结合,会根据sql语句进行区别对待。比如update还是会记录所有行的变更。

三、调整模式的方法

show variables like ’%binlog_format%‘

修改模式:set golbal binlog_format='ROW';

查看:mysqlbinlog --base64-output=decode-rows -v mysql-bin.000016

在配置文件my.cnf中,官方默认是混合模式:

四.存储引擎

存储在数据库中的数据的不同组织方式。只是引擎的功能不同,占用空间不同等,但是内容都是一样的。最常用存储引擎为:Myisam与Innodb,是数据库的重要组成部分。

     MySQL 体系图

在mysql5.5之后,Innodb取代myisam引擎,原因是innodb引擎对事务的一致性支持更好,能满足高并发更好等。在创建mysql库的时候,需要初始化系统库,其库中的表就是myisam引擎。

事务:这里查看下事务,mysql的事务自动提交的,如下

show variables like '%auto%';

修改事务的的命令 :set autocommit = 'OFF';此时如果成功是commit,回滚是rollback;

五、Innodb引擎

默认情况下创建的库、表等都是默认的Innodb引擎,共享一个文件的形式,即共享一个表空间ibdata1下面。

Innodb的特点:

1)支持事务     2)行级锁定      3)具有高效缓存    4)支持分区、表空间等    5)支持外键

Innodb场景

1)需要事务的业务     2)行级锁定      3)读写频繁的场景     4)数据一致性     5)硬件设备内存较大,可以用缓存的能力提供内存的利用率

共享表空间物理数据文件:ibdata1

创建独立表空间物理数据地址:在my.cnf中innodb_file_per_table、innodb_data_home_dir = /data/3306/data

查看引擎:show engine\G;

Innodb重要参数:

innodb_buffer_pool_size =2048G(缓存)

如何修改引擎:

1)alter table oldboy engine=innodb;

2)多张表批量改:用for循环修改

常见面试题

mysql的存储引擎有哪些,特点,区别?

innodb,myisam;百度

生产场景如何选择?

其实就是innodb和myisam的区别,百度即可

十一、linux-mysql的多种日志和引擎文件实战的更多相关文章

  1. 项目实战6—Mysql实现企业级日志管理、备份与恢复实战

    Mysql实现企业级日志管理.备份与恢复实战 环境背景:随着业务的发展,公司业务和规模不断扩大,网站积累了大量的用户信息和数据,对于一家互联网公司来说,用户和业务数据是根基.一旦公司的数据错乱或者丢失 ...

  2. Mysql实现企业级日志管理、备份与恢复实战

    背景 随着业务的发展,公司业务和规模不断扩大,网站积累了大量的用户信息和数据,对于一家互联网公司来说,用户和业务数据是根基.一旦公司的数据错乱或者丢失,对于互联网公司而言就等于说是灭顶之灾,为防止系统 ...

  3. MySQL数据库和InnoDB存储引擎文件

    参数文件 当MySQL示例启动时,数据库会先去读一个配置参数文件,用来寻找数据库的各种文件所在位置以及指定某些初始化参数,这些参数通常定义了某种内存结构有多大等.在默认情况下,MySQL实例会按照一定 ...

  4. MySQL慢查询日志相关的文件配置和使用。

    MySQL慢查询日志提供了超过指定时间阈值的查询信息,为性能优化提供了主要的参考依据,是一个非常实用的功能,MySQL慢查询日志的开启和配置非常简单,可以指定记录的文件(或者表),超过的时间阈值等就可 ...

  5. Linux命令之查看日志等实时文件命令(less 、tail)使用

    一.less的使用 1)less  文件名,即可快速打开文件 2)相关查看搜索 3)利用键盘向上向下箭头键盘上的向上和向下箭头,点击一次向下简单,文件内容往下读取一行:点击一次向上箭头,文件内容,往上 ...

  6. MySQL日志文件和InnoDB引擎文件简介

    MySQL和InnoDB的关系不在这里介绍了.但是大家都知道其中相关的文件很多,类型很多.看文件名就有点分布清楚了.所以在这里简单介绍下他们的文件. 我们直接看文件列表以及在后面直接加注释.做笔记. ...

  7. MySQL支持多种存储引擎

    MySQL的强大之处在于它的插件式存储引擎,我们可以基于表的特点使用不同的存储引擎,从而达到最好的性能. MySQL有多种存储引擎:MyISAM.InnoDB.MERGE.MEMORY(HEAP).B ...

  8. mysql中有多种存储引擎,每种引擎都有自己的特色

    mysql中有多种存储引擎,每种引擎都有自己的特色. 用途: MyISAM:快读, Memory:内存数据, InnoDB:完整的事务支持 锁: MyISAM:全表锁定, Memory:全表锁定, I ...

  9. mysql系列之9.mysql日志&存储引擎

    mysqlbinlog 是什么? 数据目录下的如下文件: mysql-bin.xxxxxx 作用? 记录数据库内部增删改查对mysql数据库有更新的内容的记录 三种模式? statement leve ...

随机推荐

  1. python刷LeetCode:27. 移除元素

    难度等级:简单 题目描述: 给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O ...

  2. 关于域名转发proxy_pass

    在配置nginx的时候,有一个需求,访问m.XXX.com的时候,需要实际访问www.YYY.com/m,并且域名不能发生变化. 达成这个需求有两种做法: 第一种就是301跳转,使用rewrite来跳 ...

  3. 19.3.8 HTML+css 课程

    form 归属于 form 通过id产生联系 ​<form id = "testform" method = "get" action = "s ...

  4. 2. laravel 5.5 学习 过程中 遇到问题 的 链接

    关于 laravel 5.5 的文档 网络上已经太多 就不些太多重复的话了 在以后的 工作 中遇到问题的 查询到的解决方案 或者 相关文档将会具体写在这里 laravel 5.5 中文文档 https ...

  5. Python说文解字_杂谈08

    1. Python变量到底是什么? Python和Java中的变量本质不一样,python的变量实质是一个指针 int str,便利贴 a = 1 # 1. a贴在1上面 # 2. 它的过程是先生成对 ...

  6. Python说文解字_defaultdict

    1. 这个构造函数需要一个函数作为参数,每当访问一个字典中不存在的键时,将会不带参数的调用这个函数,并将结果设定为默认值. 2. 众所周期,如果访问字典中不存在的键时,会引发KeyError异常. 其 ...

  7. 操作uwsgi命令

    uwsgi -i 你的目录/uwsgi.ini & 后台开启uwsgi pkill -f uwsgi 重启uwsgi

  8. LeetCode——324. 摆动排序 II

    给定一个无序的数组 nums,将它重新排列成 nums[0] < nums[1] > nums[2] < nums[3]... 的顺序. 示例 1: 输入: nums = [1, 5 ...

  9. mybatis-关于<update>的日常记录

    !注意:,一定要有 <update id="updateByPrimaryKeySelective" parameterType="com.dhht.model.o ...

  10. linux的/dev内容介绍

    http://www.cnblogs.com/lidabo/p/4505360.html 这个结合那个linux的终端介绍 https://zhidao.baidu.com/question/1742 ...