一、多种日志

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的区别,百度即可

最新文章

  1. 你所不知道的15个Axure使用技巧
  2. 【转载】ANSYS动力学分析-瞬态分析
  3. 查看sid
  4. node 与php整合
  5. 【转】unity3d input输入
  6. C#:求100到200之前所有的质数和
  7. Ghost文件封装说明
  8. Python学习 Part4:模块
  9. Centos 32位 安装 NodeJS
  10. Linux服务器管理神器-IPython
  11. ctf study of jarvisoj reverse
  12. No Ads for Blogs
  13. 洛谷P2747周游加拿大Canada Tour [USACO5.4] dp
  14. 批处理no.bat
  15. [Java学习] Java异常类型
  16. LD算法的C++实现(基于编辑距离的文本比较算法)
  17. 转 js事件探秘
  18. OpenGL三维与光照
  19. gitlab人备份与恢复
  20. cocos2d-x画线

热门文章

  1. equals与hashcode分析
  2. 吴裕雄--天生自然 JAVASCRIPT开发学习:字符串
  3. 吴裕雄--天生自然 JAVASCRIPT开发学习:输出
  4. 一天一个设计模式——(Singleton)单例模式(线程安全性)
  5. APP中H5页面调试神器
  6. 理解python中的'*','*args','**','**kwargs'
  7. HTML超链接实例介绍
  8. SQL基础教程(第2版)第3章 聚合与排序:3-3 为聚合结果指定条件
  9. MySQL--InnoDB 关键特性
  10. linux.linuxidc.com - /2011年资料/Android入门教程/