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

news2024/12/25 23:26:39

一、索引的概念

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

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

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.coloradmin.cn/o/1953318.html

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

相关文章

如何有效的进行小程序的优化

如今小程序已经成为了许多开发者开展业务,提供服务的重要平台 。所以如何有效的优化小程序成为了开发者关注的首要问题,以下是一份详细的小程序优化方案: 一、目标设定 明确小程序优化的主要目标,例如提高用户留存率、增加用户活…

writing classes ... [xxx of xxxx] 执行时间太长

一、问题展示 二、解决方法 打开设置【File - Settings…】修改堆大小

MySQL内如何改变编码格式

查找数据库的编码格式&#xff1a; show variables like character%;具体内容时这些 在创建表时设定编码格式&#xff1a; create database <要创建的数据库的名字> charset utf8; 修改数据库默认编码&#xff1a; set character_set_databaseutf8mb4; character_…

『 Linux 』信号概念与信号的产生 ( 万字 )

文章目录 信号概念前台进程与后台进程信号的本质硬件理解信号的产生Core dump 标志 信号概念 "信号"一词指用来传达信息或只是的各种形式的提示或标志; 在生活中常见的信号例如红绿灯,交通标志,短信通知等 在操作系统中,"信号"是一种用于异步通知进程发生特…

Flink大状态作业调优——DataStream篇

一、Flink 状态&#xff08;State&#xff09;简介 在流式计算中有些操作一次处理一个独立的事件(比如解析一个事件), 有些操作却需要记住多个事件的信息(比如窗口操作)。那些需要记住多个事件信息的操作就是有状态的。流式计算分为无状态计算和有状态计算两种情况。状态可以理…

jionlp根据词典进行行政区划补全

背景 需要对地址数据进行行政区划补全的,可以用下面的方法,当然是有条件限制的,只限于提供本省的词典和补全本身的地址数据,否则容易错乱 效果测试 lp = LocationParser() loc = 侨英街道乐海南里170号 res = lp(loc) print(res)1、安装或者更新 python安装 pip insta…

【秋招笔试题】小明的美食

解析&#xff1a;思维题。由于需要互不相同&#xff0c;每次操作取重复的值与最大值相加即可&#xff0c;这样即可保证相加后不会新增重复的值。因此统计重复值即可。 #include <iostream> #include <algorithm>using namespace std; const int maxn 1e5 5; int…

【高中数学/对数函数,指数函数】设方程10^x=|lg(-x)|的两根分别为x1,x1,则以下四选项正确的是? (PS:牛顿中值法失效的案例)

【问题】 设方程10^x|lg(-x)|的两根分别为x1,x1,则以下四选项正确的是&#xff1f; A.x1*x2<0 B.x1*x20 C.x1*x2>1 D.0<x1*x2<1 【解答】 10^x|lg(-x)|的两根&#xff0c;即函数y10^x与y|lg(-x)|的两个交点。 函数y10^x的曲线无须赘述&#xff0c;y|lg(-x)…

C++初阶学习第四弹——类与对象(中)

目录 一. 类的默认成员函数 二.六种默认成员函数 1、构造函数 1.1 构造函数的作用 1.2 特性 1.3 默认构造函数 2、析构函数 2.1 析构函数的作用 2.2 析构函数的用法 3、拷贝构造函数 3.1 拷贝构造函数的作用 3.2 特征 3.3 默认拷贝构造函数 三.总结 类与对象&…

LwIP入门实战 — 1 计算机网络简述

目录 1 计算机网络类别 2 常用网络协议与协议栈 2.1 常用网络协议 2.2 常用TCP/IP协议栈 3 网络协议的分层模型 4 协议层报文间的封装与拆封 5 WAN接口和LAN接口 1 计算机网络类别 广域网WAN(Wide Area Network)&#xff1a;广域网的作用范围通常为几十到几千公里&…

浅析JWT原理及牛客出现过的相关面试题

原文链接&#xff1a;https://kixuan.github.io/posts/f568/ 对jwt总是一知半解&#xff0c;而且项目打算写个关于JWT登录的点&#xff0c;所以总结关于JWT的知识及网上面试考察过的点 参考资料&#xff1a; Cookie、Session、Token、JWT_通俗地讲就是验证当前用户的身份,证明-…

记录|使用HslCommunication库进行写入Real数据的坑

项目场景&#xff1a; 现在已经通过HslCommunication连接上了PLC&#xff0c;需要对DB1.DBD10的位置处进行数据写入。 问题描述 但是进行将12.2写入指定位置DB1.DBD10时&#xff0c;发现无法从博图中实时检测到数据的写入。 下面是我当时错误的数据写入方法&#xff1a;【主…

Maven实战(一)- Maven安装与配置

Maven实战&#xff08;一&#xff09;- Maven安装与配置 文章目录 Maven实战&#xff08;一&#xff09;- Maven安装与配置1.下载安装包2.配置环境变量。3.安装目录分析4.设置HTTP代理5.镜像 前言&#xff1a; ​ 最近博主看完了《Maven实战》&#xff08;许晓斌著&#xff09;…

iOS collectionView 滑动出现空白

iOS collectionView 滑动出现空白 一个很常见的 banner 轮播&#xff0c;滑动的时候&#xff0c;有时候会出现空白&#xff0c;检查了下&#xff0c;发现代码没什么问题&#xff0c;上网查了也没啥结果&#xff0c;最后的解决方法是自定义layout解决 interface TMLoopViewLayo…

从0到1,AI我来了- (3)AI图片识别的理论知识-I

从上篇文章&#xff0c;我们分析通过Pytorch 封装的各种方法&#xff0c;解读了一遍图片识别训练到测试的流程。 这篇我们从理论上&#xff0c;理解下&#xff0c;图片是如何被识别的&#xff1f; 核心需要理解的内容有&#xff1f; 一张图片&#xff0c;如何被计算机读懂&a…

探索 Python 异步编程的利器:gevent 库

探索 Python 异步编程的利器&#xff1a;gevent 库 第一部分&#xff1a;背景介绍 在现代的软件开发中&#xff0c;异步编程模式因其在处理 I/O 密集型任务时的高效率而越来越受到重视。Python&#xff0c;作为一种动态、解释型的高级编程语言&#xff0c;其原生的异步编程支持…

如何判断IP是否属于网段10.134.208.0/20

首先想要判断IP是否属于网段&#xff0c;我们首先需要了解IP地址的组成结构&#xff1a; 网络IP地址的划分主要包括网络部分&#xff08;网络地址&#xff09;和主机部分&#xff0c;以及一个特殊的地址——广播地址。以下是详细的划分说明&#xff1a; 一、IP地址的组成 每…

中国式浪漫的源头之一:《楚辞》

文章目录 引言亦余心之所善兮,虽九死其犹未悔。惟草木之零落兮,恐美人之迟暮。沧浪之水清兮,可以濯吾缨。悲莫悲兮生别离,乐莫乐兮新相知。苟余心之端直兮,虽僻远其何伤。孰无施而有报兮,孰不实而有获?尺有所短,寸有所长。引言 楚辞中表里俱佳的文字,很有启发性。楚辞…

【学一点儿前端】本地或jenkins打包报错:getaddrinfo ENOTFOUND registry.nlark.com.

问题 今天jenkins打包一个项目&#xff0c;发现报错了 error An unexpected error occurred: "https://registry.nlark.com/xxxxxxxxxx.tgz: getaddrinfo ENOTFOUND registry.nlark.com". 先写解决方案 把yarn.lock文件里面的registry.nlark.com替换为registry.npmmi…

linux驱动--中断

中断号和中断的申请 中断号的添加-----定义设备节点&#xff0c;描述当前设备 通过设备树文件获取 /dts/xxxx.dts文件中进行设备的设置 在dts设备树文件中进行设备的定义&#xff0c;包括继承的设备&#xff0c;中断号的设置 需要对我们的dts设备树文件进行编译&#xff0…