MySQL索引、事务(数据库管理与高可用)

一、索引的概念

索引:排序的列表,对数据进行快速的查询;

针对不同的产品需求,或者不同的数据库结构,会创建不同的索引;

1:普通索引(默认索引)

2:唯一索引(可以多个)

3:主键索引(只能一个)

4:组合索引(最左查询)

5:全文索引

oracle:B树索引

将表一份为二进行查询;

70

1--35 36--70

1--17 18--35

先把实验环境创建出来:

先创建库;再创建表;

一:创建普通索引;

create index aaa on users(user_name(20));

普通索引创建命令 索引名 users表 哪个列作为索引;索引的大小;尽量和列的大小;保持一致;

如何查看索引;

show create table users\g

使用另外一种创建索引的命令:慎用;此命令是用来修改表的结构的,同时还可以添加索引;

alter table users add index bbb (user_name(20));

另外一种查看索引的方法:

show index from users\G

而且普通索引的类型就是oracle中的B树索引;

第三种创建索引的方法;

在创建表的时候创建索引;

create table t1 ( id int(10) , name char(20) , sex char(2), index ccc (id) );

查看该索引;

二:创建唯一索引

指定创建索引类型(unique)(唯一索引,它的值,要在表中是唯一性的;)

create unique index ddd on t1(id);

第二种创建唯一索引的方法:

创建表的时候创建索引;

create table t2 ( id int(10) , name char(20) , sex char(2), unique eee (id) );

第三种创建唯一索引的方法:

alter命令添加唯一索引;

表的约束:

实体完整性约束(主键)(主键是唯一的,且不能为空。)

域完整性约束(数据类型。)

引用完整性约束(外键一定对应另外一个表的主键。)

用户自定义的完整性(大小约束性。)

三:创建主键索引

主键是创建表的时候声明出来的;

查看主键:

show create table t3\G

四:创建组合索引(特点是一个索引对应多个列;且列与列可以有间隔)

create table t4 (id int(10),name char(20),age int(5),index ggg(id,name,age));

组合索引如何使用?

提供的搜索语句要和索引列对应起来;如果顺序有错误;将不会使用到索引;

五:创建全文索引

全文索引只针对字符串,而数字不能作为全文索引;

create fulltext index hhh on t4 (name);

创建索引的原则;

(1)主键或外键必须有索引

(2)300行以下,没有必要创建索引

(3)经常用于跨表查询,需要有索引

(4)唯一性比较差的列或表不适合建立索引

(5)更新太频繁的列不适合建立索引

(6)经常用where指定的条件进行查询的,适合创建索引

(7)建立索引的列尽量是小字段

索引的维护:

删除,再创建;重建索引;

如何删除索引:

使用drop命令来删除索引;然后指定索引的名称及所在的表;

drop index ggg on t4;

事物:一系列sql语句的集合,这些语句全都指定,要么都不执行;

语句1

语句2

语句3

原子性:

一致性:

隔离性:

持久性:(提交)

内存(数据缓冲区)(可以回滚)

服务器宕机的话,没有来得及写入硬盘的话,数据会丢失;

提交意味着写入硬盘;

硬盘(永久存储)(不可以回滚的)

例:银行转账:

账户1

2000

-1000

=1000

账户2

+1000

如果转账不成功会撤销前面所有的步骤;执行事物之前与执行事物之后要保证一致性。

创建实验环境:

创建一个表;

往表里填写数据,并且关闭自动提交的功能;

然后再提交第二条数据;且随后进行回滚;发现数据没有被及时写入到硬盘中;

位于缓冲区的可以回滚的,写入到硬盘中的数据不可以回滚;

如何手动提交:commit

如何将多个语句写入到事物中;

先使用begin;作为开头;然后中间写语句;最后以提交命令commit做结尾;此时;这些语句就会被及时写入到硬盘中;

创建普通索引的三种方法

创建唯一索引的三种方法

创建主键索引的两种方法

创建组合索引只有一种方法

创建全文索引有三种方法

小结

索引的概念、

索引的作用、

索引的分类、

索引的创建、

索引的查看、

索引的删除

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

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

相关文章

ubuntu开启 远程登录 允许root远程登录

如果没有22端口服务 sudo apt update sudo apt install openssh-server sudo ufw allow.ssh sudo passwd root 修改配置文件 sudo vim /etc/ssh/sshd_config Port 22 修改为 Port 22 #PermitRootLogin prohibit-password 修改为 PermitRootLogin yes service ssh restart …

推荐一个酷炫高逼格的服务器探针的监控工具,免费开源(附源码)

背景 作为一名攻城狮,面对各种服务器内存飙高、CPU猛增、磁盘打满等等服务器问题,可谓是伤透了我们的心。 不仅要开发,还要处理这些问题,大把的时间浪费了,这时候一个好的全面的监控工具尤为重要了。 所以&#xff…

C++基础知识:函数重载相关注意事项:1.引用作为重载条件,2.2.函数重载遇见函数默认参数。

1.引用作为重载条件 #include<iostream>using namespace std;//1.引用作为重载的条件 //int 和 const int 类型不同&#xff0c;所以可以作用重载条件 void fn(int &a) //int &a10;不合法 //10放在了常量区&#xff0c;而引用要么在栈区&#xff0c;要么在堆区{…

Unity打包设置

1.Resolution and Presentation (分辨率和显示) Fullscreen Window (全屏窗口): 应用程序将以全屏窗口模式运行&#xff0c;但不会独占屏幕。适用于想要全屏显示但仍需访问其他窗口的情况。 Resizable Window (可调整大小的窗口): 允许用户调整应用程序窗口的大小。适用于窗口…

保险丝(常见元器件及电路基础知识)

分类&#xff1a;简单分为熔断式和非熔断式 电压&#xff1a;保险丝的额定电压是指它的公称额定电压, 通常就是保险丝断开后能够承受的最大电压值保险丝通电时两端所承受的电压大大小于其额定电压&#xff0c;因此额定电压基本上无关紧要。 电流&#xff1a; PFC为功率因数矫…

昇思25天学习打卡营第三十四天|Jack578

昇思25天学习打卡营第三十四天|Jack578 一、数据集Dataset&#xff08;一&#xff09;数据集加载&#xff08;二&#xff09;数据集迭代&#xff08;三&#xff09;数据集常用操作 一、数据集Dataset 数据是深度学习的基础&#xff0c;MindSpore提供基于Pipeline的数据引擎&am…

项目管理中的常用工件(二):可视化工件

项目管理中的常用工件&#xff08;二&#xff09;&#xff1a;可视化工件 亲和图&#xff08;affinity diagram&#xff09;因果图&#xff08;cause-and-effect diagram&#xff09;直方图&#xff08;histogram&#xff09;流程图&#xff08;flowchart&#xff09;散点图&am…

[练习]如何使用递归算法?

&#x1f3a5; 个人主页&#xff1a;Dikz12&#x1f525;个人专栏&#xff1a;算法(Java)&#x1f4d5;格言&#xff1a;吾愚多不敏&#xff0c;而愿加学欢迎大家&#x1f44d;点赞✍评论⭐收藏 目录 1. 递归概述 2.汉诺塔问题 题目描述​编辑 题解 代码实现 3…

LeetCode Hot100 生成特殊数字的最少操作

给你一个下标从 0 开始的字符串 num &#xff0c;表示一个非负整数。 在一次操作中&#xff0c;您可以选择 num 的任意一位数字并将其删除。请注意&#xff0c;如果你删除 num 中的所有数字&#xff0c;则 num 变为 0。 返回最少需要多少次操作可以使 num 变成特殊数字。 如…

mac M1安装Roop教程及所遇到的问题

1.安装miniconda&#xff0c;下载地址&#xff1a; 按 Python 版本划分的最新 Miniconda 安装程序链接&#xff1a;https://docs.anaconda.com/miniconda/miniconda-other-installer-links/ 下载后直接默认安装即可。 我用的是&#xff1a;Python3.10对应的Miniconda 2.下载…

图生视频——DemoFusion

DemoFusion 是一个先进的演示文稿和视频制作工具&#xff0c;旨在通过利用人工智能和机器学习技术简化和增强演示内容的创建和编辑过程。 1. DemoFusion 介绍 DemoFusion结合了多种前沿的技术&#xff0c;为用户提供了一个功能强大、易于使用的平台&#xff0c;用于创建引人注…

css: 让下方元素遮住上方元素底部的 box-shadow

背景: 表格底部有 shadow , UI 让去掉, 给了项目中其他正常表格示例 定位: 对比代码发现, 其他表格底部的分页 div 遮住了表格底部的 shadow , 对比两处代码, 找出分页 div 样式不同之处, 遮住 shadow 的分页 div 使用了 position: relative 解决: 给下方元素加上 positio…

7月26日JavaSE学习笔记

反射 Java是面向对象的&#xff0c;有对象必须先有类&#xff0c; 有static修饰类的属性和方法&#xff1b;在Java中存储了类的内容&#xff0c;这个内容也应该是一个对象&#xff1b;Java中每一个用到的类都会加载一块内存&#xff0c;这每一块内存都是一个对象&#xff1b;这…

测试开发面试题---计算机网络

计算机网络模型 OSI模型&#xff1a;七层模型 物理层&#xff1a;定义电气特征&#xff0c;机械特征等功能规范&#xff0c;传递实际比特流数据链路层&#xff1a;物理地址寻址&#xff08;MAC&#xff09;&#xff0c;帧的传输&#xff0c;错误检测和纠正网络层&#xff1a;…

数据融合研究模板

摘要&#xff1a;本研究旨在深入探讨数据融合这一重要领域&#xff0c;包括其概念、方法、应用场景以及面临的挑战。通过对相关文献和实际案例的研究&#xff0c;分析数据融合在当今数字化时代的重要性和发展趋势。 一、引言 随着信息技术的飞速发展&#xff0c;数据呈现出爆…

php+bootstrap 编写简易的步骤进度条

个人笔记记录&#xff0c;步骤进度条。 版本一&#xff1a; 初始版本&#xff0c; 当前版本单纯的根据bootstrapCSS进行完成的简易版本。这个比较简单 样式我放在了最底下。 <div class"form-group steps"><div class"steps-height"><di…

如何在Linux中打开core文件

在Linux中打开core文件通常指的是使用调试工具来分析和查看core文件的内容&#xff0c;以便了解程序崩溃的原因。core文件是程序异常终止时由操作系统生成的一种内存转储文件&#xff0c;包含了程序崩溃时的内存、寄存器状态、堆栈等信息。以下是在Linux中打开core文件的一般步…

huawei 路由 RIP 协议中三种定时器的工作原理

RFC2453 定义的三种 RIP 协议定时器 更新定时器&#xff08;Update Timer&#xff09;&#xff1a;用于触发更新报文的发送&#xff0c;超时时间为 30 秒。老化定时器&#xff08;Age Timer&#xff09;&#xff1a;如果在老化时间内没有收到邻居发送的响应报文&#xff0c;则…

txt格式单词导入有道词典生词本 (java代码方式)

txt格式单词导入有道词典生词本 (java代码方式) 首先要求txt文档里单词的格式&#xff0c;大概需要像这种&#xff1a; 每行是一个单词&#xff0c;格式为&#xff1a;英文单词空格词性单词意思。 注意 导出单词本的名字就是你 txt 文件的名字 我这里是 公共英语三级 单词本 …

IAR使用调试详解

目录 1 IAR功能介绍 1.1 File文件菜单 1.2 Edit编辑菜单 1.3 View视图菜单 1.4 Projcet工程菜单 1.5Debug调试菜单 1.6 Disassembly反汇编菜单 1.7 Simulator下载调试工具 1.8 Tools工具菜单 1.9 Window窗口菜单 1.10 Help帮助菜单 2 IAR设置 2.1 插入/编辑模板 2…