数据库应用——MySQL日志管理及事务

                                                 MySQL日志管理及事务

一、日志管理
日志查询命令:show variables like '%log%';
1、错误日志
(1)记录MySQL启动和停止时,以及运行过程中发生的错误相关信息。默认保存在安装路径的data文件夹内,后缀为.err。
(2)MySQL配置文件my.ini中log-error=选项用来指定保存错误日志的位置和文件名
①MySQL必须对指定的文件夹有读写权限,否则无法操作文件
②log_warnings=0/1用于启用警告信息
2、通用查询日志
(1)开启后对服务器会产生较大压力,默认为不开启
(2)配置文件中通过general_log=ON/OFF选项用来启用或停止通用查询日志
(3)general_log_file=选项定义日志位置,默认名为host_name.log
3、二进制日志
(1)记录了所有更新了数据或者应潜在更新了数据的预计,主要目的是在恢复数据时能最大程度的恢复数据库。该日志默认开启,在data文件夹内,以mysql-bin命名,数据大时,会自动分割成多个日志文件,以数字作为扩展名
(2)可使用mysqlbinlog查看二进制文件
(3)log-bin=master-bin设置日志名
4、慢查询日志
(1)记录执行时间超过long_query_time的SQL语句,可用于查询语句优化
(2)通过slow_query_log=ON/OFF控制开启,默认为关闭
(3)可使用set global slow_query_log=ON;命令开启
5、中继日志
(1)从主服务器的二进制日志文件中复制而来的事件,并保存为日志文件。默认关闭
(2)relay-log=master-relay-bin
(3)relay-log-index=master-relay-bin.index
(4)主要用于主从服务器的从服务器
6、事务日志
(1)记录lnnoDB等支持事务的村吃引擎执行事务时产生的日志
(2)事务性存储引擎用于保证(ACID)原子性、一致性、隔离性和持久性;其不会写到数据文件中,而是写到日志文件中

二、事务
1、概念
(1)是一种机制、一个操作哦序列,包含了一组数据库操作命令,并且把所有命令作为一个整体一起向系统提交或撤销操作请求
(2)是一个不可分割的工作逻辑单元,在数据库系统上执行并发操作时,事务是最小的控制单元
(3)适用于多用户同时操作的数据库系统的场景,如银行、证券交易等
(4)通过事务的整体性保证事务的一致性
2、事务的ACID特点
(1)隔离性
①对数据进行修改的所有并发事务是彼此隔离的,表名事务必须是独立的,它不应以任何方式依赖于或影响其他事务
②修改数据的事务可在另一个使用相同数据的事务开始之前访问这些数据,或者在另一个使用相同数据的事务结束之后访问这些数据
(2)持久性
①不管系统是否发生故障,事务处理的结果都是永久的
②一旦事务被提交,事务的效果会被永久的保留在数据中
(3)原子性
①原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。
(4)一致性
①一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。

3、手动控制事务
(1)开始事务:begin
(2)提交事务:commit
(3)回滚事务:rollback
(4)自动提交控制:set autocommit=0/1

三、存储引擎
1、存储引擎简介
(1)mysql中的数据用各种不同技术存储在文件中,每种技术都使用不同的存储机制、索引技巧、锁定水平并最终提供不同的功能和能力,这系统不同的技术以及配套的功能在mysql中称为存储殷勤
(2)存储引擎是mysql将数据存储在文件系统中的存储方式或存储格式
(3)mysql常用存储引擎
MyISAM
InnoDB
(4)MyISAM:
①特点
1)不支持事务,也不支持外键
2)访问速度快
3)对事务完整性没有要求
4)MyISAM在磁盘上存储成三个文件
5).frm文件存储表定义
6)数据文件的扩展名为.MYD (MYData)
7)索引文件的扩展名是.MYI (MYIndex)
8)表级锁定形式,数据在更新时锁定整个表
9)数据库在读写过程中相互阻塞
10)会在数据写入的过程阻塞用户数据的读取
11)也会在数据读取的过程中阻塞用户的数据写入
12)数据单独写入或读取,速度过程较快且占用资源相对少
②应用场景
1)公司业务不需要事务的支持
2)单方面读取或写入数据比较多的业务
3)MyISAM存储引擎数据读写都比较频繁场景不适合
4)使用读写并发访问相对较低的业务
5)数据修改相对较少的业务
6)对数据业务一致性要求不是非常高的业务
7)服务器硬件资源相对比较差
(5)InooDB
①特点
1)支持4个事务隔离级别
2)行级锁定,但是全表扫描仍然会是表级锁定
3)读写阻塞与事务隔离级别相关
4)能非常高效的缓存索引和数据
5)表与主键以簇的方式存储
6)支持分区、表空间,类似oracle数据库
7)支持外键约束,5.5前不支持全文索引,5.5后支持全文索引
②适用场景:对硬件资源要求还是比较高的场合
(6)csv存储引擎
①以csv格式进行数据存储
②所有列必须不能为null
③不支持索引
④可以对数据文件直接编辑,保存文本文件内容
(7)performance_schema
①MySQL 5.5开始新增一个数据库:PERFORMANCE_SCHEMA,主要用于收集数据库服务器性能参数。并且库里表的存储引擎均为PERFORMANCE_SCHEMA,而用户是不能创建存储引擎为PERFORMANCE_SCHEMA的表。MySQL5.5默认是关闭的,需要手动开启
(8)MEMORY
①使用存储在内存中的数据来创建表,而且所有的数据也都存储在内存中
(9)MERGE
①mysql使用MRG_MyISAM(MERGE)实现水平分表
2、数据库引擎选择
(1)需要考虑每个存储引擎提供的核心功能及应用场景
(2)支持的字段和数据类型
①所有引擎都支持通用数据类型
②并非所有引擎都支持其他的字段类型,如二进制对象
(3)锁定乐行:不同存储引擎支持不同级别锁定
①表锁定
②行锁定
3、存储引擎的操作
(1)查看存储引擎:show engines;
(2)查看现有表正在使用的存储引擎
show table status from databasename where name=tablename
(3)配置存储引擎
①alert table tablename engine=MyISAM;
②vim my.cnf>default-storage-engine=InnoDB;
③create table engine test(id int) engine=MyISAM;
④Mysql_convert_table_format转化存储引擎

1)yum install perl-DBI perl-DBD-MySQL -y
2)/usr/local/mysql/bin/mysql_convert_table_format --user=root --password=’111111’ --sock=/tmp/mysql.sock auth

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值