mysql日志+引擎笔记

错误日志 error log       服务启动关闭

查询日志 query log

  • 普通查询日志  general    query log         客户端链接和SQL
  • 慢查询日志     slow  query  log               执行时间超出指定值

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



错误日志

vim /etc/my.cnf

[mysqld_safe]

log-error=/data/3306/mysql_oldboy3306.err



查询日志

mysql> show variables like  ‘general_log%‘;         //普通查询日志参数

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

| Variable_name    | Value                            |

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

| general_log      | OFF                              |

| general_log_file | /application/mysql/data/lnmp.log |

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

mysql> set global  general_log = ON;

慢查询:

long_query_time = 1   //超过(大于)1秒的记录,,,,默认10秒

log-slow-queries = /data/3306/slow.log

log-queries-not-using-indexes    // 没有使用索引的查询也将被记录

log-long-format  // 记录激活的更新日志、二进制更新日志、和慢查询日志的大量信息

log-short-format  //少量信息

mysql> show global status like ‘%slow%‘;

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

| Variable_name       | Value |

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

| Slow_launch_threads | 0     |   //值较大 说明有些东西正在延迟链接的新线程

| long_query_time     | 1.000000 |

| Slow_queries        | 0     |    //慢查询的记录数

| log_slow_queries    | ON    |     //是否开启

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

2 rows in set (0.00 sec)



二进制日志

log-bin=mysql-bin

mysql> show variables like ‘%log_bin%‘;

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

| Variable_name                   | Value |

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

| log_bin                         | ON    |

| sql_log_bin                     | ON    |  //临时不记录binlog   用mysql恢复时,可以临时打开

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



binlog 日志的三种模式

statement level   每修改一条SQL的语句都会记录  不需要记录每一行的 变化

Row  level         记录每一行数据修改的模式,然后在slave端再对相同的数据进行修改   bin-log日志大

mixed           上面 2种模式的混合

mysql> show variables like ‘%binlog_format%‘;

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

| Variable_name | Value     |

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

| binlog_format | STATEMENT |

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

mysql> set global binlog_format = ‘ROW‘;        //临时 全局改动  退出再进

mysqlbinlog --no-defaults   --base64-output=decode-rows   -v   mysql-bin.000004//查看ROW型 日志文件

binlog_format=mixed     //修改my.cnf   官方推荐的模式



MyISAM引擎                重要参数:key_buffer_size  = 2048M

  • 不支持事务
  • 表级锁定
  • 读写互相堵塞
  • 只会缓存索引
  • 读写速度快,占用资源相对少
  • 不支持外键约束,但支持全文索引
  • 是5.5.5前缺省的存储引擎

调优精要

  • 设置合适的索引
  • 调整读写优先级,根据实际需求确保重要操作更优先执行
  • 启用延迟插入改善大批量写入性能
  • 尽量顺序操作让insert数据都写入到尾部,减少阻塞
  • 分解大的时间长的操作,降低单个操作的阻塞时间
  • 降低并发数,某些高并发场景通过应用进行 排队队列机制
  • 对于相对静态的数据库数据,充分利用query_cache_size 或 memcached缓存服务可以极大的提高访问效率
  • count只有在去全表扫描的时候特别搞笑 。    select   count(*)  from  he.quan;
  • 可以把主从同步的主库使用innodb, 从库使用MyISAM引擎(不推荐)。

data/mysql

-rw-rw---- 1 mysql mysql  10630 3月  28 01:04 user.frm      //文件保存表的定义

-rw-rw---- 1 mysql mysql   1212 4月   6 07:20 user.MYD      //数据文件

-rw-rw---- 1 mysql mysql   2048 4月   6 07:27 user.MYI      //索引文件

mysql> show engines \G;

-rw-rw---- 1 mysql mysql 134217728 4月   7 02:15 ibdata1      //InnoDB的共享表空间



InnoDB引擎特点

  • 支持事务  支持4个事务隔离级别  ACID
  • 行级锁定
  • 读写阻塞和事务隔离级别相关
  • 具有 非常高效的缓存特性:能缓存索引,也能缓存数据
  • 整个 表和主键已cluster方式 存储,组成一颗平衡树
  • 支持分区,表空间,类似oracle数据库
  • 支持外键约束,不支持全文索引5.5以前,以后支持了。
  • 对MyISAM比,   硬件资源要求比较高

调优精要

  • 主键尽可能小
  • 避免全表扫描,因为会使用表锁
  • 尽可能缓存所有的索引和数据,提高响应速度,减少磁盘IO消耗
  • 在大批量小插入的时候,尽量自己控制事务而不要使用autocommit自动提交
  • 合理设置innodb_flush_log_at_trx_commit参数值,不要过度追求安全性,如果=0,log buffer 每秒就会被刷写日志文件到磁盘,提交事务的时候不做任何操作。
  • 避免主键更新,因为这会带来大量的数据移动




mysql> show engines;  //引擎

+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                        | Transactions | XA   | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| MRG_MYISAM         | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         |
| CSV                | YES     | CSV storage engine                                             | NO           | NO   | NO         |
| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |
| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         |
| MyISAM             | YES     | MyISAM storage engine                                          | NO           | NO   | NO         |
| FEDERATED          | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       |
| ARCHIVE            | YES     | Archive storage engine                                         | NO           | NO   | NO         |
| InnoDB             | DEFAULT | Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        |
| PERFORMANCE_SCHEMA | YES     | Performance Schema                                             | NO           | NO   | NO         |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+


/application/mysql/support-files/my-innodb-heavy-4G.cnf  


innodb_buffer_pool_size = 2048M       //缓存innodb表的索引,数据,插入数据时的缓冲  操作系统内存的70%-80%最佳。



修改引擎

mysql> alter table  test engine = MyISAM;  //修改test表的引擎。

/application/mysql/bin/mysql_convert_table_format   --user=root  --password=123456    -engine=MyISAM    hequan    test


yum install perl-ExtUtils-MakeMaker

时间: 2024-11-02 11:11:22

mysql日志+引擎笔记的相关文章

MySql学习 - MySql存储引擎笔记

MySql存储引擎 MySql数据库有很多种存储引擎,不同的引擎特点不同,有各自的优点.最近在看MySQL技术内幕,刚好做下笔记. InnoDB存储引擎 这个是自从MySQL 5.5.8版本后的默认存储引擎,也是我平时使用的搜索引擎.支持事务操作,主要面向联机事务处理的应用,特点是行锁设计,支持外键,也支持类似Oracle的非锁定读这种默认读取操作不会产生锁. 通过使用版本控制来获得高并发并且实现了SQL标准的四种隔离级别,默认是REPEATABLE级别(可以防止脏读和非重复读).同时使用一种n

mysql日志管理笔记

1.错误日志: log_error  #错误日志 log_warnings  #警告信息也要记录到错误日志中:0:表示不记录:1表示记录 log_error=/PATH/TO/ERROR_LOG_FILENAME 定义错误日志文件.作用范围为全局或会话级别,可用于配置文件,属非动态变量. log_warnings=# 设定是否将警告信息记录进错误日志.默认设定为1,表示启用:可以将其设置为0以禁用:而其值为大于1的数值时表示将新发起连接时产生的"失败的连接"和"拒绝访问&qu

mysql颠覆实战笔记(三)-- 用户登录(二):保存用户操作日志的方法

版权声明:笔记整理者亡命小卒热爱自由,崇尚分享.但是本笔记源自www.jtthink.com(程序员在囧途)沈逸老师的<web级mysql颠覆实战课程 >.如需转载请尊重老师劳动,保留沈逸老师署名以及课程来源地址. 现在我们接着上节课,完成第二个功能,不管成功不成功都记录一个日志. 一.回顾上节课内容,我们在user_log表中添加一个字段 user_id.  在上一节课的存储过程新增一行代码,如下: BEGIN set @gid=0; set @user_name=''; set @_res

mysql引擎和mysql日志相关总结

mysql日志 01.错误日志: 可以在my.cnf里面配置: [mysqld_safe] log-error=/data/3306/mysql_qb3306.err 02.查询日志 普通查询日志:纪录客户端连接信息和执行的sql语句信息(由于占用内存,作用也不是很大,就一般是关着的) mysql> show variables like 'general_log%'; +------------------+--------------------------+ | Variable_name

MySQL学习笔记之六:MySQL日志

MySQL日志主要包括:查询日志.慢查询日志.错误日志.二进制日志.中继日志.事务日志 查看与日志相关的服务器变量:SHOW GLOBAL VARIABLES LIKE '%log%'; MariaDB [(none)]> show global variables like '%log%'; +-------------------------------------------+---------------------------------------------------------

MySql存储引擎+表解压缩机制+索引+查询缓存机制+慢查询日志

一.大型网站优化之MySql优化 1.优化和不优化的对比的 在业界当中我们有一个叫大数据(big data)的概念,所谓的大数据指代千万级别以上的数据作为起步的数据.所以我们现在需要对两张都具有50331650条记录的表进行查询对比,其中表名为tbl_no的表是没有做过任何优化手段的表,表名为tbl_yes的表是做过优化手段的表.这个实验的目的是观察具有优化手段和不具有优化手段的查询中速度的差别. 实验条件: 1)两张表的数据记录总数是相同的 2)两张表的数据字段结构也是一样的 3)查询的记录的

(转)Mysql存储引擎__笔记

Mysql存储引擎(表类型): Mysql数据库: 通常意义上,数据库也就是数据的集合,具体到计算机上数据库可以使存储器上一些文件的集合或者一些内存 数据的内存数据的集合. Mysql数据库是开放源代码的关系型数据库.目前,它可以提供的功能有:支持sql语言,子查询,存储过程,触发器,视图,索引, 事务,锁,外键约束和影响复制等.在后期,我们会详细讲解这些功能. 同oracle和sql server等大型数据库系统一样,mysql也是客户端/服务器系统并且是单进程多线程架构的数据库. Mysql

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

mysqlbinlog 是什么? 数据目录下的如下文件: mysql-bin.xxxxxx 作用? 记录数据库内部增删改查对mysql数据库有更新的内容的记录 三种模式? statement level 模式: 缺点是不够细致 row level 模式: 日志会记录每一行数据被修改的形式 (一下子修改多行其实就一条语句, 但是它会记录成多行) 优点: 记录每一行的细节, 可以记录function/trigger/存储过程 mixed level 模式: 混合模式, 自动判断该使用statemen

学习笔记之MySQL 日志文件管理

MySQL 日志文件分为4种:错误日志.通用查询日志.慢查询日志和二进制日志. 1.错误日志:记录MySQL 服务器的启动.运行或停止时出现的问题. (1)启动和设置错误日志 默认情况下会开启错误日志功能,而且,错误日志无法被禁止.打开数据安装目录下的my.ini 文件找到log-error 选项进行查看,具体如下: # Error Logging. log-error="WS.err" log-error 选项指定mysqld 保存错误日志文件的位置,简单语法结构如下: log-er