MySQL事务、索引、数据恢复和备份

MySQL的事务处理

事务就是将一组SQL语句放在同一批次内去执行
如果一个SQL语句出错,则该批次内的所有SQL都将被取消执行
MySQL事务、索引、数据恢复和备份

事务的特性

事务必须具备以下四个属性,简称ACID 属性
原子性(Atomicity)

一致性(Consistency)

隔离性(Isolation)

持久性(Durability)

MySQL的事务实现方法

SET AUTOCOMMIT
使用SET语句来改变自动提交模式
MySQL事务、索引、数据恢复和备份
MySQL中默认是自动提交
使用事务时应先关闭自动提交
START TRANSACTION
开始一个事务,标记事务的起始点
COMMIT
提交一个事务给数据库
ROLLBACK
将事务回滚,数据回到本次事务的初始状态
SET AUTOCOMMIT = 1;
开启MySQL数据库的自动提交

MySQL事务处理步骤

MySQL事务、索引、数据恢复和备份

数据库索引

作用
提高查询速度
确保数据的唯一性
可以加速表和表之间的连接,实现表与表之间的参照完整性
使用分组和排序子句进行数据检索时,可以显著减少分组和排序的时间
全文检索字段进行搜索优化
分类
主键索引(PRIMARY KEY)
唯一索引(UNIQUE)
常规索引(INDEX)
全文索引(FULLTEXT)

主键索引

某一个属性或属性的组合能唯一标识一条记录
如:学生表(学号,姓名,班级,性别等) ,学号就是唯一标识的,可作为主键
特点
最常见的索引类型
确保数据记录的唯一性
确定特定数据记录在数据库中的位置
MySQL事务、索引、数据恢复和备份

唯一索引(UNIQUE)

作用
避免同一个表中某数据列中的值重复
与主键索引的区别
主键索引只能有一个
唯一索引可有多个
MySQL事务、索引、数据恢复和备份

常规索引(INDEX)

作用:快速定位特定数据
注意
index和key关键字都可设置常规索引
应加在查找条件的字段
不宜添加太多常规索引,影响数据的插入、删除和修改操作
MySQL事务、索引、数据恢复和备份
MySQL事务、索引、数据恢复和备份

全文索引(FULLTEXT)

作用:快速定位特定数据
注意
只能用于MyISAM类型的数据表
只能用于 CHAR 、 VARCHAR、TEXT数据列类型
适合大型数据集
MySQL事务、索引、数据恢复和备份
MySQL事务、索引、数据恢复和备份

管理索引

创建索引
创建表时添加
建表后追加
MySQL事务、索引、数据恢复和备份
删除索引
MySQL事务、索引、数据恢复和备份
查看索引
MySQL事务、索引、数据恢复和备份

索引准则

索引不是越多越好
不要对经常变动的数据加索引
小数据量的表建议不要加索引
索引一般应加在查找条件的字段

分析SQL语句的执行性能

MySQL事务、索引、数据恢复和备份

添加正确的索引

在WHERE、ORDER BY 子句中经常使用的字段
字段的值是多个(例如性别字段则不适合)
字段内容不是经常变化的
经常变化的字段,添加索引反而降低性能
不宜过多添加索引
每添加一条索引都会占用磁盘空间

MySQL的备份

数据库备份必要性
保证重要数据不丢失
数据转移

MySQL数据库备份方法
mysqldump备份工具
数据库管理工具,如SQLyog
直接拷贝数据库文件和相关配置文件

mysqldump数据库备份

作用
转储数据库
搜集数据库进行备份
将数据转移到另一个SQL服务器(不一定是MySQL服务器
MySQL事务、索引、数据恢复和备份
MySQL事务、索引、数据恢复和备份

mysqldump常用选项2-1

MySQL事务、索引、数据恢复和备份
MySQL事务、索引、数据恢复和备份

mysqldump常用选项2-2

MySQL事务、索引、数据恢复和备份

MySQL数据库的恢复

方法一
用 SOURCE 语法
/path/是一个绝对路径,并且必须是mysql 运行用户有权限读取的文件
SOURCE 在MySQL命令行里执行
MySQL事务、索引、数据恢复和备份
方法二
用 mysql 客户端

MySQL事务、索引、数据恢复和备份

利用SQL语句导出、导入数据

MySQL事务、索引、数据恢复和备份
输出的文件不能先存在,否则报错
MySQL事务、索引、数据恢复和备份