MySQL事务、视图、索引

MySQL事务、视图、索引

一.事务

要点1:事务(TRANSACTION)是作为单个逻辑工作单元执行的一系列操作,多个操作作为一个整体向系统提交,要么都执行、要么都不执行。

要点2:事务是一个不可分割的工作逻辑单元。

ACID属性:

原子性(Atomicity) --事务是一个完整的操作,事务的各步操作是不可分的(原子的),要么都执行,要么都不执行

一致性(Consistency)–当事务完成时,数据必须处于一致状态

隔离性(Isolation)–并发事务之间彼此隔离、独立,它不应以任何方式依赖于或影响其他事务

持久性(Durability) --事务完成后,它对数据库的修改被永久保持

创建

要点1:MySQL中支持事务的存储引擎有InnoDB和BDB

开始:begin; 或 start transaction;

提交:commit;

回滚(撤消)事务:rollback;

二.视图

视图是一张虚拟表
表示一张表的部分数据或多张表的综合数据
其结构和数据是建立在对表的查询基础上

筛选表中的行
防止未经许可的用户访问敏感数据
降低数据库的复杂程度
将多个物理数据库抽象为一个逻辑数据库

创建:CREATE VIEW view_name AS <SELECT 语句>;

删除:DROP VIEW [IF EXISTS] view_name;

查看:SELECT 字段1, 字段2, …… FROM view_name;

注意:
视图中可以使用多个表

一个视图可以嵌套另一个视图

对视图数据进行添加、更新和删除操作直接影响所引用表中的数据

当视图数据来自多个表时,不允许添加和删除数据

使用视图修改数据会有许多限制,一般在实际开发中视图仅用作查询

三.索引

结构分:B-树索引和哈希索引

用途分:普通索引、唯一索引、主键索引、组合索引、全文索引

创建:create index 名 on 表(字段);

删除:DROP INDEX index_student_name ON student;

查看:SHOW INDEX FROM table_name;

创建标准:

按照下列标准选择建立索引的列

 频繁搜索的列

 经常用作查询选择的列

 经常排序、分组的列

 经常用作连接的列(主键/外键)

请不要使用下面的列创建索引

 仅包含几个不同值的列

 表中仅包含几行

 定义为text和image和bit数据类型的列不应该增加索引

 当表的修改(UPDATE,INSERT,DELETE)操作远远大于检索(SELECT)操作时不应该创建索引,这两个操作是互斥的关系

优点:

1、可以通过建立唯一索引或者主键索引,保证数据库表中每一行数据的唯一性.

2、建立索引可以大大提高检索的数据,以及减少表的检索行数

3、在表连接的连接条件 可以加速表与表直接的相连

4、在分组和排序字句进行数据检索,可以减少查询时间中 分组 和 排序时所消耗的时间(数据库的记录会重新排序)

5、建立索引,在查询中使用索引 可以提高性能

缺点:
1、在创建索引和维护索引 会耗费时间,随着数据量的增加而增加

2、索引文件会占用物理空间,除了数据表需要占用物理空间之外,每一个索引还会占用一定的物理空间

3、当对表的数据进行 INSERT,UPDATE,DELETE 的时候,索引也要动态的维护,这样就会降低数据的维护速度,(建立索引会占用磁盘空间的索引文件。一般情况这个问题不太严重,但如果你在一个大表上创建了多种组合索引,索引文件的会膨胀很快)。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值