第十三节 MySQL事务以及索引、视图


事务的概念:是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的一个工作单位
事务的四大特性:ACID
A:原子性,一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作,这就是事务的原子性

C:一致性、数据库总是从一个一致性的状态转换到另一个一致性的状态。

I:隔离性、通常来说,一个事务所做的修改在最终提交以前,对其他事务是不可见的

D:持久性、一旦事务提交成功,则其做的修改就会永久的保存到数据库

事务开启
begin;

sql语句

commit 或者 rollback 结尾

索引的目的:提高查询效率、主键和外键都是索引的一种体现,但是建太多索引会影响更新和插入的速度,
因为他需要同样更新每个索引文件,而且建立索引会占用磁盘空间

set profiling=1; 开启运行时间检测

show index table_name # 查看索引

create index index_name on table_name(字段名称(长度)) #创建索引,字段名称(长度)表示创建表的时候给字段指定的varchar(10),如果是数字就不需要这个长度

drop index index_name on table_name # 删除索引

show profiles; # 查看执行时间

视图:视图就是一条select语句执行的返回结果集,是对若干张基本表的引用,是一张虚表,不存储具体的数据,基本表数据发生改变,视图也会跟着改变

视图的作用
1、提高了重用性,相当于调用了函数,方便操作,特别是查询操作,减少复杂的sql语句,增强可读性,
2、用于数据库重构时候不用修改python里的sql语句,不可以修改视图里的数据
3、通过过滤数据,提高了安全性能,可以对不同的用户展示不同的数据
4、让数据更清晰


create view 视图名称 as select语句; # 创建视图

例:
create view v_goods_info as select g.*,c.name as cate_name,b.name as brand_name from tdb_goods as g left join goods_cate as c on g.cate_id=c.id left join brand_name as b on g.brand_id =b.id


show tables; # 查看视图

select * from v_goods_info ; # 使用视图

drop view 视图名称; # 删除视图

原文地址:https://www.cnblogs.com/kogmaw/p/12405840.html