Mysql索引事务
1.索引
- Mysql默认是innodb引擎,索引数据都是保存在本地的一个文件中;
1.1概念
- 索引是一种特殊的文件,包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引,并指定索引的类型,各类索引有各自的数据结构实现。
1.2应用
- 数据库中的表、数据、索引之间的关系,类似于书架上的图书、书籍内容和书籍目录的关系。
- 索引所起的作用类似书籍目录,可用于快速定位、检索数据。
- 索引对于提高数据库的性能有很大的帮助。
1.3使用场景
- 要考虑对数据库表的某列或某几列创建索引,需要考虑以下几点:
-
数据量较大,且经常对这些列进行条件查询。
-
该数据库表的插入操作,及对这些列的修改操作频率较低。
-
索引会占用额外的磁盘空间。
- 注意:满足以上条件时,考虑对表中的这些字段创建索引,以提高查询效率。
反之,如果非条件查询列,或经常做插入、修改操作,或磁盘空间不足时,不考虑创建索引。
1.4使用
- 创建主键约束(PRIMARY KEY)、唯一约束(UNIQUE)、外键约束(FOREIGN KEY)时,会自动创建对应列的索引。
- 索引特性:删除,插入,修改索引字段都会产生很大影响(数据量越大效率越低);
1.4.1查看索引
show index from 表名;
1.4.2创建索引
create index 索引名 on 表名(字段名);
1.4.3删除索引
drop index 索引名 on 表名;
2.事务
- 事务指逻辑上的一组操作,组成这组操作的各个单元,要么全部成功,要么全部失败。在不同的环境中,都可以有事务。对应在数据库中,就是数据库事务。
- 特性:
- 原子性:要么全部执行成功,要么全部执行失败;
- 持久性:一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作;
- 一致性;
- 隔离性:多个事务并发执行,互相不影响;
- 回滚或提交:rollback/commit;
- rollback:所有sql语句执行过程只要出错,就会发生rollback;
start transaction;/*开启事务*/
.../*这里有多条sql语句*/
rollback/commit;