存储引擎
概念:存储引擎,一种数据库存储数据的机制,索引的技巧,锁定水平
存储的方式和存储的格式
存储引擎也属于mysql当中的组件,实际上操作的,执行的就是数据的读写I/O。
mysql的存储引擎的分类:
Innodb mysql5.5之后默认使用innodb,事务型速记存储引擎。支持ACID,支持行锁定
下面几个很少用到
MYisam 5.5之前默认存储引擎 插入和查询速度很快,但不支持事务
memory:内存型存储引擎,数据在写时都保存在内存当中,一旦重启所有数据全部消失。
CSV:逗号分割数据的存储引擎,数据文件以 .csv文件保存的 方便兼容excel 保存的文件就是一个普通的文本文件。不加密,不支持索引
innodb存储引擎:
1.读写阻塞(锁表) 和 事务的隔离级别
2.能够高效的缓存数据 支持多种类的索引
3.表的索引的类型默认是b-tree
4.支持外键,支持全文索引
5.对硬件的资源要求比较高
6.行级锁定,会把行锁住,禁止操作。
特别是 模糊查询 like 查询时会进行全表扫描,扫描过程中会锁定整个表。只能读
对没有创建索引的列 查询 也会锁定整个表
使用的是索引列,锁定条件的行,行锁定。
InnoDB 行锁定和索引的关系
行锁 是通过索引来实现的
如果没有索引,innodb会使用默认的隐藏索引来对记录进行加锁
区别是:加索引 锁定行 不加索引 锁定整个表
mysql默认是自动提交写入 插入语句运行就写入
oracle提交才能写入 插入语句运行后还需要点提交才能写入
数据库的日志管理、备份与恢复
在配置文件当中设置
备份的目的:备灾
在生产环境中,数据的安全性非常重要
造成数据丢失的原因:
1.程序出错
2.人为问题
3.磁盘故障
备份的分类:
物理备份:对磁盘或对文件直接进行备份
冷备份 脱机备份 先把指定程序关闭 再对资料进行备份
热备份 联机备份 不关闭程序就能备份
逻辑备份:
根据数据库文件当中保存的sql语句,表结构等等,以特定的格式和命令对文件的内容进行还原。
热备份的一种
只能对表备份 库没了 无法恢复
主从复制可以恢复
物理备份 又称全量备份:把数据库的内容整个一次性的备份
mysql自带的备份命令。可以备份库,也可以备份表
mysqldump
增量备份
开启二进制日志的功能
binlog 逻辑备份
会生成一个文件,里面包含了sql语句,要使用特定的方式和语句才能恢复
binlog.format=MIXED
记录二进制日志的文件格式:
STATEMENT基于sql语句:只记录用户操作的sql语句 高并发情况下,记录的sql语句顺序可能会出错
导致恢复数据时会有丢失或误差。效率高
ROW基于行 记录每一行的数据,准确,高并发不会出错,但恢复效率低
MIXED:混合模式,这种情况用statement,高并发用row 智能判断是否高并发
general_log=ON
开启通用查询日志