数据库索引与事务

  • 数据库索引与事务

    • 索引

      • 概念

        • 一个排序的列表,为了实现对表的快速查询(类似于目录),把一个列作为索引。

          • 对于有序的列表,就可以使用二分法进行快速查询,也叫B树查询。

        • 如果没有索引,那么就会遍历整个表(横着一个一个)。

      • 优点:

        • 大大提高了查询的速度

        • 提高跨表查询的速度

        • 降低服务器IO的成本,排序成本

      • 缺点

        • 消耗额外的磁盘空间,索引列的字符数越多消耗存储资源越大

      • 划分

        • 物理角度

          • 聚簇索引

            • 比如:电话簿,目录后直接附加内容,不需要额外寻找,适合主键索引,同一个表只能有一个聚簇索引。

          • 非聚簇索引

            • 比如:书的目录,找到对应的目录后还得去翻到相应页才能看到内容,这就是非聚簇索引,同一个表可以有多个非聚簇索引。

        • 逻辑角度常见的索引

          • 普通索引

            • 也就是默认索引,默认采用B树索引

          • 唯一索引

            • 索引列的值必须唯一,允许为空,可以有多个

          • 主键索引

            • 索引列的值唯一且不能为空,只能有一个

          • 组合索引(最左前缀)

            • 将多个列共同组成一个索引,需要注意搜索时的顺序必须与创建组合索引时的顺序一致。

          • 全文索引(fulltext)

            • 主要针对文本类的,消耗资源最多

      • 创建

        • 一般创建方式:

          • 在创建时创建

          • alter添加索引

          • 创建时指定索引

        • 普通索引

          • 创建索引

            • create index 索引名称 on 表名 (哪一列(长度));

          • 修改表结构

            • alter table 表名 add index 索引名(哪一列(长度));

          • 创建时指定

            • create table t1 (id int(10),name char(20),index 索引名(哪一列(长度))

        • 唯一索引

          • 创建索引

            • create unique index 索引名 on 表名(那一列(长度));

          • 修改表结构

            • alter table 表名 add unique index 索引名(哪一列(长度));

          • 创建时指定

            • create table t1 (id int(10),name char(20),unique index 索引名(哪一列(长度))

        • 主键索引

          • 一个表只能有一个主键,在创建时指定主键时就同时创建,

          • 指定主键:primary key (列名)

        • 组合索引

          • create table t1 (id int(10),name char(20),index 索引名(列名,列名,。。。)

          • 需要注意使用组合索引时必须按照创建时的顺序

        • 全文索引

          • 针对整个文本,消耗存储资源大

          • 创建索引

            • create fulltext index 索引名 on 表名(那一列)

      • 创建依据

        • 表的主键、外键必须有索引。因为主键具有唯一性,外键关联的是子表的主键,查询时可以快速定位。

        • 记录数超过300行的表应该有索引。如果没有索引,需要把表遍历一遍,会严重影响数据库的性能。

        • 经常与其他表进行连接的表,在连接字段上应该建立索引。

        • 唯一性太差的字段不适合建立索引。

        • 更新太频繁地字段不适合创建索引。

          • 原本的索引会失效,造成浪费

        • 经常出现在 where 子句中的字段,特别是大表的字段,应该建立索引。索引应该建在选择性高的字段上。

        • 索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引。

      • 索引维护

        • 重建

          • 删除索引

            • drop index 索引名 on 表名

    • 事务

      • 一系列sql语句的集合,要么这些语句全都执行,要么全都不执行,

      • 特性

        • 原子性(不可分割性)

        • 一致性

          • 类似于能量守恒,这边有所减少,对应的应该有所增加。

        • 独立性

          • 多个事务并发进行,在排除数据关联性的前提下,应互不干扰。

        • 持久性

          • 事务对数据的影响应该是持久性

      • 怎么使用

        • begin; sql语句序列 commit;

        • 注意事项

          • 有些版本默认开启了自动提交功能可以将其关闭

            • set autocommit=0

          • rollback是将整个事务回滚。

          • 保存点

            • savepoint 保存点名称

            • 通过rollback to 保存点名称

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/861090.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

kerberos认证:生成keytab文件并实现java代码用keytab登录hadoop集群

Kerberos介绍: Kerberos 是一种网络认证协议,用于在不安全的网络中以安全的方式对用户和服务进行身份验证。它通过使用密钥加密技术来防止数据被窃听或篡改,确保了认证过程的安全性。Kerberos 认证的主要特点包括: 票据&#xff…

Git->git pull 和 git pull --rebase的详解

Git拉取代码的坑 格式:git xx指令 origin/远程仓库分支名称假如本地仓库和远程仓库都是空的 本地仓库向远程仓库提交一个文件 git commit -a -m "local first commit":-a暂存修改文件到暂存区,准备本地提交。-m表示提交信息git pu…

常微分方程算法之编程示例五(阿当姆斯法)

目录 一、研究问题 二、C代码 三、计算结果 一、研究问题 本节我们采用阿当姆斯法(Adams法)求解算例。 阿当姆斯法的原理及推导请参考: 常微分方程算法之阿当姆斯法(Adams法)_四步四阶adams显格式;三步四阶adams隐…

云计算运维工程师面试

1. 云计算运维工程师的角色和职责是什么? 回答: 云计算运维工程师负责确保云计算环境(包括硬件和软件系统)的高可用性和稳定性。他们的主要职责包括: 监测系统和应用程序的性能,确保它们正常运行。故障排除,快速响应并解决系统或应用程序中出现的问题。容量规划,根据…

10.二次开发——黑马程序员Java最新AI+若依框架项目

目录 前言零、使用若依修改器修改项目名称一、创建sky-merchant模块1.创建模块2. 在新模块中导入依赖3. 父工程锁定版本4. sky-admin 导入依赖 二、菜品管理页面生成1.根据页面原型,确定表信息2.设计表3使用代码生成器生成页面4,下载tb_dish代码并分别导…

Matlab|【免费】含氢气氨气综合能源系统优化调度

目录 主要内容 部分代码 结果一览 下载链接 主要内容 该程序参考《_基于氨储能技术的电转氨耦合风–光–火综合能源系统双层优化调度》模型,对制氨工厂、风力发电、电制氢、燃气轮机、火电机组等主体进行建模分析,以火电机组启停成本、煤耗…

VS Code修改菜单栏字体大小

修改方法 打开VS Code,快捷键 CtrlShiftP,在弹出的输入框中输入 setting,找到带有JSON的一项,如图所示: 原文链接 window.zoomLevel 前后变化 终端字体大小 File -> Preferences -> Settings -> Features…

用Hugging Face Transformers,高效部署:多显卡量化感知训练并转换为ONNX格式的多标签分类模型

文章目录 环境准备数据准备数据集定义模型定义多显卡训练模型保存与 ONNX 转换验证 ONNX 模型部署到移动设备 要在多显卡上进行量化感知训练(QAT),然后将量化后的模型转换为 ONNX 格式并部署到移动设备,可以按照以下步骤进行&…

mysql数据库SQL语句大全详解(下)

六、事务管理 1、开始事务 START TRANSACTION;2、提交事务 COMMIT;3、回滚事务 ROLLBACK;4、保存点 设置保存点: SAVEPOINT savepoint_name;回滚到保存点: ROLLBACK TO SAVEPOINT savepoint_name;七、视图 1、创建视图 CREATE VIEW view_name A…

昇思25天学习打卡营第3天|数据集 Dataset

文章目录 要训练AI,大量的数据是基础。就像我们人去学习写作文一样,得先有大量的输入,然后才能有一个不错的输出。AI也一样,需要喂大量的数据以后,才可能有一个不错的预测。 我们产生的数据多种多样 乱七八糟。但计算…

海外短剧系统:一扇窥探多元文化的奇妙之窗

随着全球化的推进,文化交流的壁垒逐渐消融,我们得以更加便捷地领略到世界各地的独特风情。在这一背景下,海外短剧系统应运而生,它如同一扇扇虚拟的窗户,将我们带入不同国家、不同民族、不同文化的世界,让我…

Spark算法之ALS模型(附Scala代码)

Spark算法之ALS模型(附Scala代码) 在大数据时代,个性化推荐系统已成为连接用户与信息的桥梁,而算法则是构建这一桥梁的基石。Apache Spark,作为一款强大的分布式计算系统,提供了丰富的机器学习库&#xff…

比特币生态系统的现状与流动性提升的新路径

自2009年中本聪发布比特币白皮书以来,比特币一直被誉为“数字黄金”,在加密货币领域占据着不可动摇的地位。其去中心化、稀缺性和安全性,增强了其作为长期价值储存工具的吸引力。 相比之下,以太坊自2015年问世以来,凭…

超低排放标准

据朗观视觉小编了解发现,超低排放标准作为衡量一个行业或企业环保水平的重要指标,越来越受到社会各界的关注。本文将深入探讨超低排放标准的内涵、实施意义以及未来展望。 一、超低排放标准的定义 超低排放标准,是指在特定工业生产过程中&am…

electron的托盘Tray

1.在主进程文件background.js中引入需要的文件 import { Tray, Menu } from "electron"; const path require("path");2.获取托盘图标 const baseSRC process.cwd(); //这里不能使用__dirname,使用dirname会直接获取dist_electron中的文件,…

视频共享融合赋能平台LntonCVS统一视频接入平台数字化升级医疗体系

医疗健康事关国计民生,然而,当前我国医疗水平的地区发展不平衡、医疗资源分布不均和医疗信息系统老化等问题,制约了整体服务能力和水平的提升。视频融合云平台作为推动数字医疗的关键工具,在医疗领域的广泛应用和普及,…

Oracle - 数据库打补丁实践

原文:https://www.cnblogs.com/ddzj01/p/12097467.html 一、概述 本文将介绍如何给oracle数据库打最新补丁,数据库版本为11.2.0.4单实例,操作系统为redhat6.5 二、下载相关升级包 1. 登录MOS,查阅(ID 2118136.2),下载…

vue3中引入echarts图表

1.下载echarts npm install echarts 2.在使用的页面引入echarts // 按需引入 echarts import * as echarts from "echarts"; 3.准备dom节点 <div id"chartLine"></div> 4.将数据渲染到dom节点 import { ref, onMounted, markRaw } from "…

如何快速把一篇文章或企业介绍变为视频?

随着科技和数字化的不断发展&#xff0c;企业的营销手段也在不断变革。尤其对于产品宣传来说&#xff0c;用生动的视觉语言直观地展示产品特点和优势&#xff0c;能够彰显企业实力&#xff0c;让社会不同层面的人士对企业产生正面、良好的印象&#xff0c;从而建立对该企业的好…

2024.06.18【读书笔记】丨生物信息学与功能基因组学(第十五章 真菌基因组 第二部分)【AI测试版】

读书笔记&#xff1a;《生物信息学与功能基因组学》第十五章 - 第二部分 摘要 本部分深入探讨了真菌基因组的生物信息学分析&#xff0c;包括基因组测序策略、基因识别与功能注释&#xff0c;以及基因组复制对真菌进化的影响。此外&#xff0c;还讨论了功能基因组学方法在真菌…