Mysql事物和索引 小灰灰 2022-05-17 12:59 152阅读 0赞 **MySQL 事务主要用于处理操作量大,复杂度高的数据。** Mysql事物具有以下特点: 在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。 事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。 事务用来管理 insert,update,delete 语句 数据库事物的四个特性及其含义: ACID: (Atomicity)原子性:一个事物的所有sql操作,要么全部完成,要么全部不完成,不会停留在某个中间状态。事物在中间过程中发生了错误,会被回滚到之前的状态就好像操作并没有发生过一样。。 (consistency)一致性:在事物操作之前和操作过后,数据库的完整性不会发生改变。 (Isolation)隔离性:数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离分为不同级别,包括读未提交(Read uncommitted)、读提交(read committed)、可重复读(repeatable read)和串行化(Serializable)。 (Durability)持久性:事物处理结束后,对于数据库的操作就是永久的,即便系统故障也不会丢失。 **注:在 MySQL 命令行的默认设置下,事务都是自动提交的,即执行 SQL 语句后就会马上执行 COMMIT 操作。因此要显式地开启一个事务务须使用命令 BEGIN 或 START TRANSACTION,或者执行命令 SET AUTOCOMMIT=0,用来禁止使用当前会话的自动提交。** **Mysql事物处理的方法** BEGIN 开始一个事务 ROLLBACK 事务回滚 COMMIT 事务确认 直接用 SET 来改变 MySQL 的自动提交模式: SET AUTOCOMMIT=0 禁止自动提交 SET AUTOCOMMIT=1 开启自动提交 ![这里写图片描述][70] **MySQL 索引** MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索引包含多个列。 创建索引时,你需要确保该索引是应用在 SQL 查询语句的条件(一般作为 WHERE 子句的条件)。 实际上,索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录。 [70]: /images/20220517/f96571000bed41ae8afa48735f4688e5.png
还没有评论,来说两句吧...