目录
一.索引
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)事务的概念
(1)事务的概念
事务(具有原子性)指逻辑上的一组操作,组成这组操作的各个单元,要么全部成功,要么全部失败。在不同的环境中,都可以有事务。对应在数据库中,就是数据库事务。
(2)使用事务的原因
在某些场景下,如果没有事务就会出现很大的问题。例如银行的转账问题。
2.如何开启事务 (1)开启事务的三部曲 开启事务:start transaction;执行多条SQL语句回滚或提交 rollback(全部失败)/commit(全部成功)。(2)开启事务的例子
(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,那么数据库中的数据就没有得到修改,虽然在当前数据库中显示钱已经发生了变化,但是再打开另一个数据库端口重新进入就会发现没有变化,这就是开启事务的好处,没有执行成功就不会修改数据库中的数据。