MySQL事务,索引
-
MySQL的事务处理
事务就是将一组SQL语句放在同一批次内去执行
如果一个语句出错,则该批次内所有的SQL语句都将被取消执行
注意:MySQL事务处理只支持InnoDB和BDB数据表类型
-
事务必须具备以下四个原则,简称ACID属性
原子性(Atomicity)
一致性(Consistency)
隔离性(Isolation)
持久性(Durability)
-
MySQL的事务实现方法
set autocommit 使用set语句来改变自动提交模式
set autocommit=0; #关闭自动提交模式
set autocommit=1; #开启自动提交模式
注意:MySQL中默认是自动提交,使用事务时应该先关闭自动提交
start transaction 开始一个事物,标记事务的起始点
commit 提交一个事务给数据库
rollback 将事务回滚,数据回到本次事务的初始状态
set autocommit=1; 开启自动提交模式
-
数据库索引
作用:提高查询速度
确保数据的唯一性
可以加速表与表之间的连接,实现表与表之间的参照完整性
使用分组和排序字句进行数据检索时,可以显著的减少分组和排序 的时间
全文检索字段进行搜索优化
分类:主键索引
唯一索引
常规索引
全文索引
主键索引:某一属性或属性的组合能唯一标识一条记录
如:学生表中,学号就是唯一标识的,可作为主键
特点:确保数据记录的唯一性
确保特定数据记录在数据库中的位置
唯一索引:
作用:避免同一表中某数据列中的值重复
注意:主键索引只能有一个,唯一索引可有多个
常规索引:
作用:快速定位特定数据
注意:index和key关键字都可设置常规索引
应加在查找条件的字段
不宜添加太多的常规索引,影响数据的插入、删除和修改操作
全文索引:
作用:快速定位特定数据
注意:只能用于MySAM类型的数据表
只能用于char、varchar、text数据列类型
适合大型数据集
管理索引:
创建索引:
创建表时添加
建表后追加
alter table 表名 add索引类型(数据列名)
删除索引:
drop index 索引名 on 表名 alter table 表名 drop index索引名 alter table 表名drop primary key
查看索引:
show index(或keys)from 表名
索引准则:索引不是越多越好
不要对经常变动的数据加索引
小数据量的表不建议加索引
索引一般应加在查找条件的字段