sql事务、视图和索引

简介: sql事务、视图和索引

一、事务:


1.概念:是单个逻辑单元执行的一系列操作(一个事务中有多个sql语句),这个操作作为一个整体一起提交,要么执行,要么都不执行,多个事务操作是一个不可分割的逻辑单元。


2.事务的特性:


(1)原子性(A):一个事务中的所有的操作不可再分割,保持原子性,他们要么都执行,要么都不执行。

(2)一致性(C):数据保持一致

(3)隔离性(I):并发事务(多个事务)之间相互独立、隔离

(4)永久性(D):事务完成之后,数据永久有效

3.事务的使用:

(1)开始事务 begin transaction(将一个业务的操作包含在开始事务中)

(2)提交事务 commit transaction(如果所有的事务都没有错误,提交事务)

(3)回滚事务 rollback transaction(如果有一个错误的话,回滚事务)


4.事务分类:

(1)显示事务:用begin transaction 开始的事务,最常用的

(2)隐士事务:打开隐士事务之后,系统自动控制事务

(3)自动提交事务,用于单条sql语句中


二、视图


1.概念:是一个虚拟表,包含单个表的部分数据或多个表的总和数据组成的虚表,他的结构和数据是基于对数据表的查询基础上。


注:(1)视图不存储数据,实际数据存储在数据表中

(2)一个数据库表可以创建多个视图


2.视图的作用:

(1)筛选数据行

(2)保护敏感数据

(3)降低数据库的复杂度

(4)将多个物理数据库抽象为一个逻辑数据库


3.创建视图的注意事项:

(1)select 语句不能包含order by

(2)不能有into

(3)不引用临时表或表变量


4.创建视图:

create view 视图名 as select 语句


5.删除视图: drop view 视图名


三、索引


1.索引的概念:数据库中编排数据的内部方法


2.索引页的概念:数据库存放索引数据的一种方式


3.作用:提高数据库的检索速度,改善数据的性能


4.分类:


(1)唯一索引:不允许有重复的行数据,不允许为null

(2)主键索引:特殊的唯一索引,不允许有null

(3)聚集索引:索引顺序和数据物理存放顺序一致

(4)非聚集索引:索引顺序和物理存放顺序不一致


5.创建索引的原则:


(1)在频繁搜索的列上

(2)经常查询的列

(3)经常排序和分组的列

(4)进行连接的列(主键和外键)

(5)在小字节的列上


6.不推荐创建索引:


(1)只有少量几个值得列上

(2)只有几行数据的表上

(3)在大字段上


7.使用索引的注意事项:


(1)查询中尽量不要用*

(2)where后有多个条件的时候,有索引的放在前面

(3)order by后尽量不要用表达式

(4)定期的对索引页进行碎片整理


8.创建和删除索引


create index 索引名 on 表名(列名)

drop index 表名.索引名

相关文章
|
2月前
|
SQL Oracle 关系型数据库
SQL优化-使用联合索引和函数索引
在一次例行巡检中,发现一条使用 `to_char` 函数将日期转换为字符串的 SQL 语句 CPU 利用率很高。为了优化该语句,首先分析了 where 条件中各列的选择性,并创建了不同类型的索引,包括普通索引、函数索引和虚拟列索引。通过对比不同索引的执行计划,最终确定了使用复合索引(包含函数表达式)能够显著降低查询成本,提高执行效率。
|
2月前
|
SQL 关系型数据库 MySQL
如何确认SQL用了索引:详细技巧与方法
在数据库管理中,索引是提高SQL查询性能的重要手段
|
1月前
|
SQL Oracle 关系型数据库
[SQL]事务
本文介绍了事务处理的基本概念,包括事务的四大特性(原子性、一致性、隔离性、持久性)及生命周期。文章还详细解释了事务的保存点、四种事务隔离级别及其异常读现象,并提供了设置事务隔离级别的方法。最后,作者建议读者深入学习相关理论以更好地理解事务隔离级别。
49 0
|
2月前
|
SQL 存储 关系型数据库
SQL默认索引是什么:深入解析与技巧
在SQL数据库中,索引是一种用于提高查询性能的重要数据结构
|
2月前
|
SQL 存储 关系型数据库
SQL默认索引是什么
在SQL数据库中,索引是一种用于提高查询性能的数据结构
|
2月前
|
SQL 关系型数据库 MySQL
如何确认SQL用了索引
在数据库管理和优化过程中,确认SQL查询是否使用了索引是一个至关重要的步骤
|
2月前
|
SQL 存储 数据库
实验4:SQL视图操作与技巧
在SQL数据库管理中,视图(View)是一种虚拟表,它基于SQL查询的结果集创建,并不存储实际数据,而是存储查询定义
|
2月前
|
SQL 存储 数据库
实验4:SQL视图操作技巧与方法
在数据库管理系统中,视图(View)是一种虚拟表,它基于SQL查询的结果集创建,并不实际存储数据
|
2月前
|
存储 SQL 安全