Mysql索引事务基本理论

Mysql索引事务

1.索引

  • Mysql默认是innodb引擎,索引数据都是保存在本地的一个文件中;

1.1概念

  • 索引是一种特殊的文件,包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引,并指定索引的类型,各类索引有各自的数据结构实现。

1.2应用

  • 数据库中的表、数据、索引之间的关系,类似于书架上的图书、书籍内容和书籍目录的关系。
  • 索引所起的作用类似书籍目录,可用于快速定位、检索数据。
  • 索引对于提高数据库的性能有很大的帮助。

1.3使用场景

  • 要考虑对数据库表的某列或某几列创建索引,需要考虑以下几点:
  1. 数据量较大,且经常对这些列进行条件查询。

  2. 该数据库表的插入操作,及对这些列的修改操作频率较低。

  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.事务

  • 事务指逻辑上的一组操作,组成这组操作的各个单元,要么全部成功,要么全部失败。在不同的环境中,都可以有事务。对应在数据库中,就是数据库事务。
  • 特性:
  1. 原子性:要么全部执行成功,要么全部执行失败;
  2. 持久性:一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作;
  3. 一致性;
  4. 隔离性:多个事务并发执行,互相不影响;
  • 回滚或提交:rollback/commit;
  1. rollback:所有sql语句执行过程只要出错,就会发生rollback;
start transaction;/*开启事务*/
.../*这里有多条sql语句*/
rollback/commit;

猜你喜欢

转载自blog.csdn.net/qq_45665172/article/details/109691831
今日推荐