SQL入门第六篇——事务与索引

简介: 什么是事务?一个事务就是一个完整的业务逻辑,就是a转账给b,那么a要扣钱,b要加钱两者需要同时进行。只有DML的三个语句和事务有关系,其他都没有关系。因为三个语句是数据库表的增删改。只要你的操作一旦涉及到就需要考虑安全问题。提交事务:清空事务性活动的日志文件,将数据全部

SQL入门第六篇——事务与索引

事务介绍

  1. 什么是事务?一个事务就是一个完整的业务逻辑,就是a转账给b,那么a要扣钱,b要加钱两者需要同时进行。
  2. 只有DML的三个语句和事务有关系,其他都没有关系。因为三个语句是数据库表的增删改。只要你的操作一旦涉及到就需要考虑安全问题。
  3. 提交事务:清空事务性活动的日志文件,将数据全部彻底持久化到数据库表中,提交事务标志着,事务的结束,并且是一种全部成功的结束。
  4. 回滚事务:将之前所有的DML操作全部撤销,并且清空事务性活动的日志文件回滚事务标志着,事务的结束。并且是一种全部失败的结束。
  5. 怎么提交事务,怎么回滚事务
    提交事务:commit
    回滚事务:rollback
    事务对应的英语单词是:transaction
  6. 事务四大特性:原子性,一致性,隔离性,持久性
  7. 事务的隔离性:有四种级别
    读未提交:read uncommitted,事务A可以读取到事务B这种现象称为脏读现象
    读已提交:read committed,事务A只能读取到事务B提交后的数据
    可重复读:repeatable read,事务A读取到了事务B,后来事务B修改并且提交了,那么事务A还是能读取到没修改之前的数据
    序列化:seriallizable,最高级别效率也是最低,不能并发进行。

索引简介

  1. 索引:类书书本的排列方式,有目录和小节。遵循左小右大的原则,采用中序遍历
    提醒1:在任何数据库中主键都会自动添加索引对象,id字段上自动有索引。如果一个字段上有unique约束的话,也会自动创建索引对象
    提醒2:在任何数据库中,任何一张表的任何一条记录硬盘存储上都有一个硬盘的物理存储编号
    提醒3:在mysql中,索引是一个单独的对象,不同的存储引擎以不同的形式存在,在MYISAM存储引擎中,索引存储在一个.MYI文件中。在InnoDB存储引擎中索引存储在一个逻辑名称叫做tablespace的当中。在MEMOEY存储引擎中,索引存储在一个内存当中,不管索引存储在哪里,索引在mysql当中都是一个树的形式存在(自平衡树:b+树)
  2. 在mysql当中,主键上,以及unique字段上都会自动添加索引的什么条件下,我们会考虑给字段添加索引呢?
    条件1:数据量庞大
    条件2:该字段经常出现在where的前面,以条件的形式存在,经常被扫描
    条件3:该字段很少的DML操作
  3. 索引怎么创建和删除,语法是什么?
    创建索引:create index emp_ename_index on emp(ename);
    删除索引:drop index emp_ename_index on emp;
  4. 索引失效的情况:
  1. 使用%或者_,
  2. 2使用or,
  3. 3使用复合索引的时候,没有使用左  侧的列查找。
  4. 4在where当中索引参加了运算
  5. 在where当中索引列使用了函数
  1. 索引是各种数据库进行优化的重要手段。优化的时候优先考虑的因素就是索引
    有单一索引,复合索引,主键索引,唯一性索引

DBA命令

  • 必会的导出与导入:mysql dump bjpowernode    >D:bjpwernode.sql -uroot(用户名)-p(密码)
  • 导入:mysql dum p bjpowernode emp>D:bjpwernode.sql -uroot(用户名)-p(密码)
  • 初始话数据库:source D:\bjpowernode.sql
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
存储 SQL 关系型数据库
mysql底层原理:索引、慢查询、 sql优化、事务、隔离级别、MVCC、redolog、undolog(图解+秒懂+史上最全)
mysql底层原理:索引、慢查询、 sql优化、事务、隔离级别、MVCC、redolog、undolog(图解+秒懂+史上最全)
mysql底层原理:索引、慢查询、 sql优化、事务、隔离级别、MVCC、redolog、undolog(图解+秒懂+史上最全)
|
SQL 存储 关系型数据库
SQL优化策略与实践:组合索引与最左前缀原则详解
本文介绍了SQL优化的多种方式,包括优化查询语句(避免使用SELECT *、减少数据处理量)、使用索引(创建合适索引类型)、查询缓存、优化表结构、使用存储过程和触发器、批量处理以及分析和监控数据库性能。同时,文章详细讲解了组合索引的概念及其最左前缀原则,即MySQL从索引的最左列开始匹配条件,若跳过最左列,则索引失效。通过示例代码,展示了如何在实际场景中应用这些优化策略,以提高数据库查询效率和系统响应速度。
859 10
|
SQL 索引
【YashanDB知识库】字段加上索引后,SQL查询不到结果
【YashanDB知识库】字段加上索引后,SQL查询不到结果
|
SQL 分布式计算 大数据
SparkSQL 入门指南:小白也能懂的大数据 SQL 处理神器
在大数据处理的领域,SparkSQL 是一种非常强大的工具,它可以让开发人员以 SQL 的方式处理和查询大规模数据集。SparkSQL 集成了 SQL 查询引擎和 Spark 的分布式计算引擎,使得我们可以在分布式环境下执行 SQL 查询,并能利用 Spark 的强大计算能力进行数据分析。
|
SQL 关系型数据库 OLAP
云原生数据仓库AnalyticDB PostgreSQL同一个SQL可以实现向量索引、全文索引GIN、普通索引BTREE混合查询,简化业务实现逻辑、提升查询性能
本文档介绍了如何在AnalyticDB for PostgreSQL中创建表、向量索引及混合检索的实现步骤。主要内容包括:创建`articles`表并设置向量存储格式,创建ANN向量索引,为表增加`username`和`time`列,建立BTREE索引和GIN全文检索索引,并展示了查询结果。参考文档提供了详细的SQL语句和配置说明。
722 2
|
SQL 存储 机器学习/深度学习
如何让SQL速度飞起来 入门YashanDB优化器
优化器,SQL引擎的核心组成部分,是数据库中用于把关系表达式转换成最优执行计划的核心组件,影响数据库系统执行性能的关键组件之一。
274 15
|
SQL 关系型数据库 MySQL
如何确认SQL用了索引:详细技巧与方法
在数据库管理中,索引是提高SQL查询性能的重要手段
3065 5
|
SQL Oracle 关系型数据库
SQL优化-使用联合索引和函数索引
在一次例行巡检中,发现一条使用 `to_char` 函数将日期转换为字符串的 SQL 语句 CPU 利用率很高。为了优化该语句,首先分析了 where 条件中各列的选择性,并创建了不同类型的索引,包括普通索引、函数索引和虚拟列索引。通过对比不同索引的执行计划,最终确定了使用复合索引(包含函数表达式)能够显著降低查询成本,提高执行效率。
463 3
|
SQL 数据库
SQL数据库基础语法入门
[link](http://www.vvo.net.cn/post/082935.html)
|
SQL 存储 关系型数据库
SQL默认索引是什么:深入解析与技巧
在SQL数据库中,索引是一种用于提高查询性能的重要数据结构