事务处理方法
- 事务就是将一组SQL语句放在同一批次内去执行
- 如果一个SQL语句出错,则该批次内的所有SQL都将被取消执行
- MySQL事务处理只支持InnoDB和BDB数据表类型
MySQL的ACID原则
- 原子性(Atomicity)
- 一致性(Consistency)
- 隔离性(Isolation)
- 持久性(Durability)
事务实现方法
- 使用SET语句来改变自动提交模式
- MySQL中默认是自动提交
- 使用事务时应先关闭自动提交
1
2SET AUTOCOMMIT = 0; # 关闭自动提交模式
SET AUTOCOMMIT = 1; # 开启自动提交模式
1 | START TRANSACTION |
事务处理步骤
样例
1 | /*创建 shop 数据库*/ |
数据库索引
作用
提高查询速度
确保数据的唯一性
可以加速表和表之间的连接,实现表与表之间的参照完整性
使用分组和排序子句进行数据检索时,可以显著减少分组和排序的时间
全文检索字段进行搜索优化
分类
主键索引(PRIMARY KEY)
唯一索引(UNIQUE)
常规索引(INDEX)
全文索引(FULLTEXT)
主键索引
某一个属性或属性的组合能唯一标识一条记录。
特点:
- 最常见的索引类型
- 确保数据记录的唯一性
- 确定特定数据记录在数据库中的位置
1 | CREATE TABLE `Grade` ( |
唯一索引(UNIQUE)
避免同一个表中某数据列中的值重复。
与主键索引的区别:主键索引只能有一个、唯一索引可有多个。
1 | CREATE TABLE `Grade` ( |
常规索引(INDEX)
作用:快速定位特定数据。
注意:
1.index和key关键字都可设置常规索引
2.应加在查找条件的字段
3.不宜添加太多常规索引,影响数据的插入、删除和修改操作
1 | # 创建表时添加 |
全文索引(FULLTEXT)
MySQL 5.6 以前的版本,只有 MyISAM 存储引擎支持全文索引;
MySQL 5.6 及以后的版本,MyISAM 和 InnoDB 存储引擎均支持全文索引;
只有字段的数据类型为 char、varchar、text 及其系列才可以建全文索引。
1 | CREATE TABLE `student` ( |
管理索引
1.创建表时添加
2.建表后追加
1 | ALERT TABLE 表名 ADD 索引类型(数据列名) |
3.删除索引
1 | DROP INDEX 索引名 ON 表名 |
4.查看索引
1 | SHOW INDEX(或KEYS) FROM 表名 |
索引准则
索引不是越多越好
不要对经常变动的数据加索引
小数据量的表建议不要加索引
索引一般应加在查找条件的字段
MySQL数据库备份和恢复的几种方法
mysqldump备份工具
数据库管理工具,如SQLyog
直接拷贝数据库文件和相关配置文件
mysqldump命令导出数据
1 | mysqldump -h 主机名 –u 用户名 –p [options] 数据库名 [ table1 table2 table3 ] > path/filename.sql |
1 | #备份myschool数据库的student及result表 |
掌握source命令导入数据
1 | SOURCE /path/db_name.sql; |
都要先创建或选择数据库
/path/是一个绝对路径,并且必须是mysql 运行用户有权限读取的文件
1 | mysql -uroot -pmxt; |