欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

初窥MySQL的索引与事务

时间:2023-07-11

目录

一.索引

1.什么是索引

2.索引的作用

3.索引的使用场景

4.索引的简单使用

(1)查看索引

(2)创建索引

(3)删除索引

 二.事务

1.什么是事务以及为什么使用事务

(1)事务的概念

(2)使用事务的原因

 2.如何开启事务

(1)开启事务的三部曲

(2)开启事务的例子

3.事务的四大特性


一.索引

1.什么是索引

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

2.索引的作用

可以快速定位,检索数据可以提高数据库的性能,如果查询数据的时间太长,可以通过创建索引提高查询效率

3.索引的使用场景

如果需要对数据库中的某列或者某几列想要创建索引,需要考虑以下几点(如果不考虑以下几点,可能提高不了查询的效率):

数据量较大,经常对这些数据进行条件查询。对创建索引的列修改插入频率较低。索引会占用磁盘空间,在创建索引的时候需要考虑磁盘空间是否充足。根据where条件查询来创建合适的索引。索引也不是创建的越多越好,数据量大的时候更新索引也消耗时间

注意:对于有些查询结果使用不到索引如:给name创建一个索引,当name is null 或者

name  like % 某%,就使用不到索引。

4.索引的简单使用

对于一些约束,会自动创建对应列的索引,如主键约束,唯一键约束,外键约束。

(1)查看索引

语法:

show index from 表名;

(2)创建索引

语法:

create index 索引名 on 表名(字段名);

(3)删除索引

语法:

drop index 索引名 on 表名;

 二.事务

1.什么是事务以及为什么使用事务

(1)事务的概念

事务(具有原子性)指逻辑上的一组操作,组成这组操作的各个单元,要么全部成功,要么全部失败。在不同的环境中,都可以有事务。对应在数据库中,就是数据库事务。


(2)使用事务的原因

在某些场景下,如果没有事务就会出现很大的问题。例如银行的转账问题。

 2.如何开启事务

(1)开启事务的三部曲 开启事务:start transaction;执行多条SQL语句回滚或提交 rollback(全部失败)/commit(全部成功)。

(2)开启事务的例子

初始化的账户

drop table if exists accout;create table accout(id int primary key auto_increment,name varchar(20) comment '账户名称',money decimal(11,2) comment '金额');insert into accout(name, money) values('张三', 3000),('李四', 3000);

开启事务后的转钱操作

start transaction;-- 张三账户减少2000update accout set money=money-2000 where name = '张三';-- 李四账户增加2000update accout set money=money+2000 where name = '李四';-- commit执行完成后转账就会成功,数据库中的数据就会得到修改commit;

使用commit之前 

 使用commit之后

 

开启事务后,如果没有执行到commit,那么数据库中的数据就没有得到修改,虽然在当前数据库中显示钱已经发生了变化,但是再打开另一个数据库端口重新进入就会发现没有变化,这就是开启事务的好处,没有执行成功就不会修改数据库中的数据。

3.事务的四大特性 原子性:对于一组操作(主要为更新),要么全部成功,要么全部失败。一致性:一个事务里面,多次查询到的结果都是一致的。隔离性:不同事务,查询/修改的数据是互相隔离的。一个事务没有提交/回滚之前,修改数据只有自己可以看到。持久性:事务提交后,数据会持久化到硬盘中。

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。