[内容] MariaDB & MySQL 事务

内容一:事务的作用

事务的作用是保护数据的安全性

内容二:MariaDB & MySQL 事务的 4 大特性

2.1 原子性(Atomicity)

一系列操作被看作一个事务,这个事务里面的所有操作要么全部失败,要么全部成功,如果在操作的过程中出现中断,则立刻进行 rollback

2.2 一致性(Consistency)

一系列操作被看作一个事务,在事务开始前和结束后,整个库的完整逻辑约束不能被打破,例如:一个人向另一个人转账,不能出现一个人转账成功另一个人没有收到转账,或者一个人转账失败另一个人收到转账的情况

2.3 隔离性(Isolation)

主要解决并发的情况,避免不同的人,在相同的时间,查看到的数据的不一致性,避免以下情况的发生:
1) 脏读:一个事务读取了另一个事务更新、提交并撤销的数据,导致此事务看到的数据是错误的
2) 不可重复读:一个事务多次读取了另一个事务多次更新并提交的数据,导致此事务看到的数据是来回变化的
3) 幻读:一个事务在批量修改所有数据,但是在修改的过程中另一个事务又往里面插入了数据,导致此事务在修改完成之后,意外发现还有一条数据没有修改

2.4 持久性(Durability)

事务结束后,所有更新都将被保存,不能回滚

内容三:MariaDB & MySQL 事务隔离级别

3.1 MariaDB & MySQL 事务隔离级别的特点

事务隔离级别脏读不可重复读幻读
读未提交(read-uncommitted)是是是
不可重复读(read-committed)否是是
可重复读(repeatable-read)否否是
串行化(serializable)否否否

3.2 MariaDB & MySQL 默认的事务隔离级别

可重复读 repeatable-read

3.3 查看目前所使用的事务隔离的方法

MariaDB [(none)]> select @@tx_isolation;
+-----------------+
| @@tx_isolation  |
+-----------------+
| REPEATABLE-READ |
+-----------------+
1 row in set (0.001 sec)

(补充:这里以查看 MariaDB 目前所使用的事务隔离为例)

[内容] MariaDB & MySQL 多表关系

内容一:一对一关系

1.1 通常实现方法

唯一外键

1.2 典型案例

学生表和学生证表

内容二:一对多关系

2.1 通常实现方法

主外键

2.2 典型案例

学生表和班级表

内容三:多对多关系

3.1 通常实现方法

中间表加联合主键

(补充:联合主键是指一张表中有两个主键,这两个主键叫联合主键,每一条数据里的联合主键可以相互之间拼凑成一个新的主键,联合主键可以重复,只要保证这个新的主键唯一即可)

3.2 典型案例

学生和课程

[SQL] MariaDB & MySQL 索引的设置 (转载)

mysql 设置索引

1.添加PRIMARY KEY(主键索引)

 语法:ALTER TABLE `表名` ADD PRIMARY KEY ( `列名称` )

mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )


2.添加UNIQUE(唯一索引)

语法:ALTER TABLE `表名` ADD UNIQUE ( `列名称`)

mysql>ALTER TABLE `table_name` ADD UNIQUE ( `column`)

3.添加INDEX(普通索引)

语法:ALTER TABLE `表名` ADD INDEX index_name ( `列名称` )

mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column` )

4.添加FULLTEXT(全文索引)

语法:ALTER TABLE `表名` ADD FULLTEXT ( `列名称`)

mysql>ALTER TABLE `table_name` ADD FULLTEXT ( `column`)

5.添加多列索引

语法:ALTER TABLE `表名` ADD INDEX index_name ( `列名称`, `列名称`, `列名称` )

mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )

 

想要查看表有几个字段设置了索引

语法;SHOW INDEX FROM `表名`

mysql>SHOW INDEX FROM `cccinfo`
————————————————
版权声明:本文为CSDN博主「z793397795」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/z793397795/article/details/91491546

注明:所有转载内容皆直接从被转载文章网页的标题和内容的文本中复制而来

CC 4.0 BY-SA 版权协议网址:https://creativecommons.org/licenses/by-sa/4.0/deed.z