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 表名.索引名

目录
相关文章
|
18天前
|
SQL 数据库 数据库管理
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(一)模式、表、索引与视图
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(一)模式、表、索引与视图
77 11
|
3天前
|
SQL 存储 关系型数据库
如何巧用索引优化SQL语句性能?
在 MySQL 中,添加合适的索引可以显著提升慢查询的速度,因为索引加快了数据检索。要优化 SQL 性能,首先需定位慢查询,可通过查看执行时间和执行计划。`EXPLAIN` 命令用于查看执行计划,分析如`type`(全表扫描最慢,索引扫描较快)、`key`(未使用索引为NULL)等字段。例如,全表扫描的查询可考虑为慢查询,并创建相应索引进行优化。此外,注意聚簇索引、索引覆盖和最左前缀原则等索引使用技巧,以提高查询效率。启用慢查询日志并设置阈值,有助于识别已运行的慢查询。
|
6天前
|
SQL 存储 弹性计算
GaussDB SQL调优:建立合适的索引
GaussDB SQL调优:建立合适的索引
|
10天前
|
SQL JSON atlas
实时计算 Flink版产品使用合集之SQL Server CDC是否支持抽取SQL Server视图
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
18天前
|
SQL 自然语言处理 搜索推荐
SQL Server 索引和视图
SQL Server 索引和视图
|
18天前
|
XML SQL 存储
SQL Server的索引选择
SQL Server的索引选择
12 0
|
18天前
|
SQL 存储 关系型数据库
【MySQL系列】一条SQL,我怎么知道它有没使用到索引?
哈希索引会为所有的索引列计算一个哈希码,在哈希表中保存哈希码和指向每个数据行的指针,这种结构对。的B-Tree上找到主键值,再从聚簇索引建立的B-Tree找到行数据。知道的,我了解的提高行数据查询的主要有B树索引、哈希索引。好了,今天的分享就先到这,我们下期《MySQL系列》继续。,值都存储叶子节点同时形成双向链表,很适合范围查询。,如哪些索引可以被命中、哪些索引实际被命中。有的,索引失效一般是这个SQL查询破坏了。,整棵B-Tree的高度变得矮胖,可以。索引覆盖,直接通过索引就可以查询到数据。
89 6
【MySQL系列】一条SQL,我怎么知道它有没使用到索引?
|
16天前
|
SQL API 流计算
实时计算 Flink版产品使用合集之在Mac M1下的Docker环境中开启SQL Server代理的操作步骤是什么
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
10天前
|
SQL 存储 搜索推荐
SQL server增删改查(1)
SQL server增删改查(1)
18 0