MySQL索引与事务
链接:
提取码:ekpy 复制这段内容后打开百度网盘手机App,操作更方便哦1.索引的分类
- 普通索引:这是最基本的索引类型,而且没有唯一性之类的限制
- 唯一性索引:与普通索引基本相同,区别在于:索引列的所有值都只能出现一次,即必须唯一,但可为空。
- 主键:是一种特殊的唯一索引,必须指定为
PRIMARY KEY
,具有唯一性的同时不能为空- 全文索引:
MySQL
从3.23.23
版开始支持全文索引和全文检索。在MySQL
中,全文索引的类型为FULLTEXT
,全文索引可以在`VARCHAR
或者TEXT
类型的列上创建。贴吧的文本内容,和一些小型的网站网页内容,存放在数据库中即为全文索引模式。- 单列索引与多列索引:索引可以是单列上创建的索引,也可以是 列上创建的索引。
2.索引的作用
- 设置了合适的索引之后,数据库利用各种快速的定位技术,能够大大加快查询速率,特别是当表很大时,或者查询涉及到多个表时,使用索引可使查询加快成千倍。
- 可以降低数据库的
lo
成本, 并且索引还可以降低数据库的排序成本。- 通过创建唯一-性索引保证数据表数据的唯一性,可以加快表与表之间的连接。
- 在使用分组和排序时,可大大减少分组和排序时间。
3.创建,查看,删除索引的方法
3.1索引的创建
已知一个表内信息数据如下
3.1.1创建普通索引(没有唯一性限制
)
(1)示例如下: 查看结果:
(2)示例如下:
查看结果:
3.1.2创建唯一性索引(必须唯一,但可为空
)
示例如下: 查看结果:
3.1.3创建主键索引
若新创表时忘记创建主键,示例如下:查看结果:
3.2索引的查看
3.2.1索引的查看index
的使用
(1)示例如下:
(2)示例如下:
3.2.2索引的查看keys
的使用
(1)示例如下:
(2)示例如下:
3.3索引的删除
已知有以下索引:
(1)示例如下:
查看结果:
(2)示例如下:
查看结果:
(3)示例如下:
查看结果:
4.事务ACID的特点
- 原子性:事务是一个完整的操作,事务的各元素是不可分的(原子的),事务的所有元素必须作为一个整体提交或回滚。如果事务中的任何元素失败,则整个事务将失败。
- 一致性:当事务完成时,数据必须处于一致状态:在事务开始之前,数据库汇总存储的数据处于一致状态;在正在进行的事务中,数据可能处于不一致的状态;当事务完成时,数据必须再次回到已知的一致状态。
- 隔离性:对数据进行修改的所有并发事务是彼此隔离的,这表明事务必须是独立的,它不应该以任何方式依赖于或影响其他事务。修改数据的事务可以在另一个使用相同数据的事务开始之前访问这些数据,或者在另一个使用相同数据的事务结束之后访问这些数据。
- 持久性:事务的持久性指不管系统是否发生了故障,事务处理的结果都是永久的。一旦事务被提交,事务的效果会被永久地保留在数据库中。
5.事务的操作
5.1命令简介
5.2实际演练(为实验效果,开启两个窗口,实为一台虚拟机)
已知表内信息数据如下
(1)窗口①示例如下:
窗口②查看结果:
窗口①示例如下:
窗口②查看结果:
(2)窗口①示例如下:
窗口②查看结果:
窗口①示例如下:
窗口②查看结果:
5.3禁止自动提交
默认情况下
MySQL
的事务是自动提交的,当sql
语句提交时事务便自动提交。
(1)窗口①示例如下(关闭自动提交):
窗口②查看结果:
(2)窗口①示例如下(开启自动提交):
窗口②查看结果: