MySQL事务、索引

1、事务
事务就是将一组SQL语句放在同一批次内去执行;如果一个SQL语句出错,则该批次内的所有SQL都将被取消执行(持InnoDB和BDB数据表类型)。
2、ACID 属性
原子性(Atomicity)
一致性(Consistency)
隔离性(Isolation)
持久性(Durability)
3、MySQL的事务实现方法
SET AUTOCOMMIT:使用SET语句来改变自动提交模式
SET AUTOCOMMIT = 0; # 关闭自动提交模式
SET AUTOCOMMIT = 1; # 开启自动提交模式
MySQL中默认是自动提交
使用事务时应先关闭自动提交
步骤:一、START TRANSACTION=0:开始一个事务,标记事务的起始点
二、COMMIT:提交一个事务给数据库
三、ROLLBACK:将事务回滚,数据回到本次事务的初始状态
四、SET AUTOCOMMIT = 1:开启MySQL数据库的自动提交
4、索引
作用: 提高查询速度
确保数据的唯一性
可以加速表和表之间的连接,实现表与表之间的参照完整性
使用分组和排序子句进行数据检索时,可以显著减少分组和排序的时间
全文检索字段进行搜索优化
分类: 主键索引(PRIMARY KEY):主键索引只能有一个
唯一索引(UNIQUE):唯一索引可有多个
常规索引(INDEX)
全文索引(FULLTEXT): 只能用于MyISAM类型的数据表
只能用于 CHAR 、 VARCHAR、TEXT数据列类型
全文索引的使用:select *from student where match(列名) against (列值);
在select前面添加explain可以查询是否全文索引
5、管理索引
创建索引
创建表时添加
建表后追加:ALERT TABLE 表名 ADD 索引类型(数据列名)
删除索引: DROP INDEX 索引名 ON 表名
ALTER TABLE 表名 DROP INDEX 索引名
ALTER TABLE 表名 DROP PRIMARY KEY
查看索引: SHOW INDEX(或KEYS) FROM 表名
6、索引准则

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

你可能感兴趣的:(MySQL事务、索引)