MySQL----主键、唯一、普通索引的创建与删除
创建索引
CREATE INDEX index_name
ON table_name (column1 [ASC|DESC], column2 [ASC|DESC], ...);
- CREATE INDEX: 用于创建普通索引的关键字。
- index_name: 指定要创建的索引的名称。索引名称在表中必须是唯一的。
- table_name: 指定要在哪个表上创建索引。
- (column1, column2, …): 指定要索引的表列名。你可以指定一个或多个列作为索引的组合。这些列的数据类型通常是数值、文本或日期。
- ASC和DESC(可选): 用于指定索引的排序顺序。默认情况下,索引以升序(ASC)排序。
创建索引的条件
-
查询频繁的字段应该作为索引。索引的目的就是提高检索效率,如果某个字段被频繁使用,使用字段作为检索条件时就有必要提高检索效率。
-
更新频繁的字段不适合作为索引。索引的高效是以增删改的效率为代价的。
-
不作为检索条件的,不适合作为索引。如果该字段都不会作为条件用于检索,只会出现在结果中,那该字段不适合作为索引。
主键索引
在创建的时候直接指定
create table user(id int primary key, name varchar(30)
);
//或者
create table user(id int,name varchar(30),primary key(id)
);
在已有的表添加索引
ALTER TABLE `table_name` ADD PRIMARY KEY index_name ( `column` [ASC|DESC]);//例如:
create table user(id int,name varchar(30)
);
alter table user3 add primary key(id); -- 创建表以后再添加主键
- ALTER TABLE: 用于修改表结构的关键字。
- table_name: 指定要修改的表的名称。
- ADD PRIMARY KEY: 添加索引的子句。ADD PRIMARY KEY用于创建普通索引。
- index_name: 指定要创建的索引的名称。索引名称在表中必须是唯一的。
- column1: 指定要索引的表列名。唯一的,列的数据类型通常是数值、文本或日期。
- ASC和DESC(可选): 用于指定索引的排序顺序。默认情况下,索引以升序(ASC)排序。
删除索引
如果一个主键是自增长的,不能直接删除该列的主键索引,应当先取消自增长,再删除主键特性
alter table 表名 drop primary key;
//例如:
alter table user modify id int ;【重新定义列类型】alter table user drop primary key;
普通索引
在已有的表添加索引
ALTER TABLE table_name
ADD INDEX index_name (column1 [ASC|DESC], column2 [ASC|DESC], ...);
- ALTER TABLE: 用于修改表结构的关键字。
- table_name: 指定要修改的表的名称。
- ADD INDEX: 添加索引的子句。ADD INDEX用于创建普通索引。
- index_name: 指定要创建的索引的名称。索引名称在表中必须是唯一的。
- (column1, column2, …): 指定要索引的表列名。你可以指定一个或多个列作为索引的组合。这些列的数据类型通常是数值、文本或日期。
- ASC和DESC(可选): 用于指定索引的排序顺序。默认情况下,索引以升序(ASC)排序。
在创建表的时候添加索引
CREATE TABLE table_name (column1 data_type,column2 data_type,...,INDEX index_name (column1 [ASC|DESC], column2 [ASC|DESC], ...)
);
- CREATE TABLE: 用于创建新表的关键字。
- table_name: 指定要创建的表的名称。
- (column1, column2, …): 定义表的列名和数据类型。你可以指定一个或多个列作为索引的组合。这些列的数据类型通常是数值、文本或日期。
- INDEX: 用于创建普通索引的关键字。
- index_name: 指定要创建的索引的名称。索引名称在表中必须是唯一的。
- (column1, column2, …): 指定要索引的表列名。你可以指定一个或多个列作为索引的组合。这些列的数据类型通常是数值、文本或日期。
- ASC和DESC(可选): 用于指定索引的排序顺序。默认情况下,索引以升序(ASC)排序。
删除索引
DROP INDEX
DROP INDEX index_name ON table_name;
- DROP INDEX: 用于删除索引的关键字。
- index_name: 指定要删除的索引的名称。
- ON table_name: 指定要在哪个表上删除索引。
ALTER TABLE
ALTER TABLE table_name
DROP INDEX index_name;
- ALTER TABLE: 用于修改表结构的关键字。
- table_name: 指定要修改的表的名称。
- DROP INDEX: 用于删除索引的子句。
- index_name: 指定要删除的索引的名称。
唯一索引
创建索引CREATE UNIQUE INDEX
CREATE UNIQUE INDEX index_name
ON table_name (column1 [ASC|DESC], column2 [ASC|DESC], ...);
- CREATE UNIQUE INDEX: 用于创建唯一索引的关键字组合。
- index_name: 指定要创建的唯一索引的名称。索引名称在表中必须是唯一的。
- table_name: 指定要在哪个表上创建唯一索引。
- (column1, column2, …): 指定要索引的表列名。你可以指定一个或多个列作为索引的组合。这些列的数据类型通常是数值、文本或日期。
- ASC和DESC(可选): 用于指定索引的排序顺序。默认情况下,索引以升序(ASC)排序。
在已有的表上创建索引 ALTER TABLE
ALTER table mytable
ADD CONSTRAINT unique_constraint_name UNIQUE (column1, column2, ...);
- ALTER TABLE: 用于修改表结构的关键字。
- table_name: 指定要修改的表的名称。
- ADD CONSTRAINT: 这是用于添加约束(包括唯一索引)的关键字。
- unique_constraint_name : 指定要创建的唯一索引的名称,约束名称在表中必须是唯一的。
- UNIQUE (column1, column2, …): 指定要索引的表列名。你可以指定一个或多个列作为索引的组合。这些列的数据类型通常是数值、文本或日期。
创建表的时候直接指定
CREATE TABLE table_name (column1 data_type,column2 data_type,...,CONSTRAINT index_name UNIQUE (column1 [ASC|DESC], column2 [ASC|DESC], ...)
);
- CREATE TABLE: 用于创建新表的关键字。
- table_name: 指定要创建的表的名称。
- (column1, column2, …): 定义表的列名和数据类型。你可以指定一个或多个列作为索引的组合。这些列的数据类型通常是数值、文本或日期。
- CONSTRAINT: 用于添加约束的关键字。
- index_name: 指定要创建的唯一索引的名称。约束名称在表中必须是唯一的。
- UNIQUE (column1, column2, …): 指定要索引的表列名。
显示索引信息
SHOW INDEX FROM table_name\G
注意
- 不是加了索引就会使用到,如果mysql发现通过索引查找的效率和整表查找差不多,mysql会自动优化为整表索引,因为使用索引要先读索引文件还需要扫码索引树。
- 如果索引字段涉及到类型强转或者mysql函数调用以及表达式计算等,就不能使用到索引了。
- 对于字符串类型来说,通常取前几个字符来区分字符串就足够了,否则过长的字符串索引会导致索引文件也过长,磁盘I/O也使用过多。
相关文章:
MySQL----主键、唯一、普通索引的创建与删除
创建索引 CREATE INDEX index_name ON table_name (column1 [ASC|DESC], column2 [ASC|DESC], ...);CREATE INDEX: 用于创建普通索引的关键字。index_name: 指定要创建的索引的名称。索引名称在表中必须是唯一的。table_name: 指定要在哪个表上创建索引。(column1, column2, ……...
css预处理是什么?作用是什么?
CSS预处理器是一种增强和扩展标准CSS的工具。它们允许开发者使用变量、嵌套规则、Mixin(混合)以及函数等高级功能,以更模块化和可维护的方式编写CSS代码。预处理器如Sass(SCSS)、Less和Stylus等,通过引入这…...
镜像拉取失败:[ERROR] Failed to pull docker image
问题描述 执行 bash docker/scripts/dev_start.sh 命令提示错误: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post “http://%2Fvar%2Frun%2Fdocker.sock/v1.45/images/create?fromImageregistry.b…...
FM全网自动采集聚合影视搜索源码
源码介绍 FM 全网聚合影视搜索(响应式布局),基于 TP5.1 开发的聚合影视搜索程序,本程序无数据库,本程序内置P2P 版播放器,承诺无广告无捆绑。片源内部滚动广告与本站无关,谨防上当受骗,资源搜索全部来自于网络。 环境…...
【DevOps】什么是 pfSense?免费构建SDWAN
目录 一、详细介绍pfSense 1、 什么是 pfSense? 2、原理 3、 特点 4、 优点 5、 缺点 6、应用场景 7、 典型部署 二、pfSense实战:免费构建企业SD-WAN 1、拓扑图 2、准备工作 3、安装和基本配置pfSense 4、配置VPN 配置IPsec VPN 配置OpenV…...
elementui table超出两行显示...鼠标已入tip显示
elementui el-table超出两行显示…鼠标已入tip显示 方式一 <el-table-column label"描述"prop"note"class-name"myNoteBox"><template slot-scope"scope"><!-- tips悬浮提示 --><el-tooltip placement"to…...
空白服务器安装系统
一、准备工作 确定服务器的硬件配置,包括处理器、内存、硬盘等信息。选择合适的操作系统镜像文件,可以从官方网站或者第三方网站下载。 二、制作启动盘或镜像 如果服务器支持从光盘启动,可以使用光盘制作软件(如UltraISO&#…...
【车载音视频电脑】嵌入式AI分析车载DVR,支持8路1080P
产品特点 采用H.265 & H.264编解码,节约存储空间、传输流量; 高分辨率:支持8路1080P*15FPS/4路1080P*30FPS、720P、D1等编解码; 支持1张SATA硬盘,取用方便,满足大容量存储要求; 支持1个…...
Java实现Mysql批量插入与更新
第一、批量插入语句 Insert({"<script>","INSERT INTO TABLE_NAME (" "ID," "IS_DELETE," "GMT_CREATE," "GMT_MODIFIED" ")VALUES","<foreach collection list item item separator …...
李沐团队发布Higgs-Llama-3-70B,角色扮演专用模型
前言 近年来,大语言模型(LLM)在各个领域都展现出强大的能力,尤其是其在对话、写作、代码生成等方面的应用越来越广泛。然而,想要让 LLM 真正地融入人类社会,扮演各种角色,还需要具备更强大的角…...
2024年护网行动全国各地面试题汇总(4)作者:————LJS
面试过程及回答 自我介绍这里就如实回答的工作经历,参与的项目,尽量简短的把你参与的项目和成果说出来就行 使用过哪些设备,出现误报怎么办 天眼、EDR、全流量告警、态势感知、APT、蜜罐设备先去查看设备的完整流量日志等信息确认是否为误报&…...
秋招突击——6/11——复习{(树形DP)树的最长路径、电话号码的字母组合}——新作{重复序列中前最小的数字}
文章目录 引言复习树形DP——树的最长路径电话号码的字母组合 新作重复序列中前最小的数字个人实现参考实现 总结 引言 这两天可能有点波动,但是算法题还是尽量保证复习和新作一块弄,数量上可能有所差别。 复习 树形DP——树的最长路径 这道题是没有…...
Lua与C交互API接口总结
Lua与C交互 1. 常见Lua相关的C API压入元素查询元素获取元素检查元素栈的相关数据操作 2. C调用Lua核心调用函数示例 3. Lua调用C1. C函数注册到Lua(lua_register)示例2. 批量注册(luaL_Reg)示例 1. 常见Lua相关的C API 压入元素…...
DT浏览器很好用
简单的浏览器,又是强大的浏览器,界面简洁大方,操作起来非常流畅😎,几乎不会有卡顿的情况。 搜索功能也十分强大👍,能够快速精准地找到想要的信息。 而且还有出色的兼容性,各种网页都…...
RabbitMQ实践——在管理后台测试消息收发功能
在《RabbitMQ实践——在Ubuntu上安装并启用管理后台》中,我们搭建完RabbitMQ服务以及管理后台。本文我们将管理后台,进行一次简单的消息收发实验。 赋予admin账户权限 登录到管理后台,进入到用户admin的管理页面 点击“set permission”&a…...
vscode卡顿问题处理(vue-official插件)
vue官方扩展由volar升级为vue-official,部分人的ide会变得非常卡顿,这是由于vscode本身一些问题导致,如下图作者解释: 解决方式: 通过禁用Hybrid模式,不使用tsserver来接管语言支持,卡顿会缓解…...
使用Kube-Bench对Kubernetes进行安全检测
使用Kube-Bench对Kubernetes进行安全检测 1. 工具介绍 Kube-Bench是一个开源的Go语言工具,用于自动化检查Kubernetes集群是否符合CIS Kubernetes基准。这些基准包括一系列关于Kubernetes配置和部署安全性的建议和最佳实践。 Kube-Bench执行了一系列针对Kubernete…...
STM32开发过程中碰到的问题总结 - 1
文章目录 前言1. 怎么生成keil下可以使用的文件和gcc下编译使用的makefile2. STM32的时钟树3.怎么查看keil5下的编译工具链用的是哪个4. Arm编译工具链和GCC编译工具链有什么区别吗?5. 怎么查看Linux虚拟机是x86的还是aarch646. 怎么下载gcc-arm的编译工具链7.怎么修…...
hiberfil.sys文件在Windows系统作用
hiberfil.sys文件在Windows系统中起着关键的作用,主要涉及到计算机的休眠功能。以下是关于hiberfil.sys的详细解释: 定义与功能: hiberfil.sys是Windows休眠功能(Windows Hibernation)将内存数据与会话保存至硬盘所需…...
智能制造前沿:ARMxy工控机在机器人控制中
机器人控制系统正逐步成为现代制造业的核心引擎。在这个过程中,ARMxy工业计算机以其独特的优势,成为了驱动这一变革的关键力量。本文将以自动化装配线机器人为例,探讨ARMxy如何通过其低功耗、高性能特性,以及高度灵活性的设计&…...
【CS.AI】AI引领编程新时代:深度探索GitHub Copilot
文章目录 引言0. TOP TAKEAWAYS 重要要点1. Copilot的基本功能2. 技术原理3. 优势与局限优势局限 4. 使用体验4.1 初次使用4.2 在 JetBrains 全家桶中使用 GitHub Copilot1. 安装插件2. 配置插件3. 使用 GitHub Copilot 4.3 日常开发4.4 体验与反馈 5. 对开发者生态系统的影响5…...
Java:爬虫htmlunit抓取a标签
如果对htmlunit还不了解的话可以参考Java:爬虫htmlunit-CSDN博客 了解了htmlunit之后,我们再来学习如何在页面中抓取我们想要的数据,我们在学习初期可以找一些结构比较清晰的网站来做测试爬取,首先我们随意找个网站如下ÿ…...
电池包断路单元DBU的预充电电阻应用案例
当电池组接触器闭合到电机和逆变器上时,逆变器电容器中会有电流涌入。这种非常高的电流至少可能会使接触器老化,并可能永久损坏接触器。 因此,当我们关闭电池组上的接触器时,我们分三个步骤执行此操作: 1.关闭主负极…...
车载网络安全指南 系统层面开发阶段(六)
返回总目录->返回总目录<- 目录 前言 一、统层面产品开发启动 二、系统层面漏洞分析 三、网络安全策略具体化 四、确定网络安全技术需求 五、系统设计 六、系统集成与测试 七、网络安全验证 八、系统层面网络安全评估 九、系统层面产品开发阶段检查 十、产品发…...
Julia 文件读写
Julia 文件读写 Julia 是一种高性能的动态编程语言,特别适合于数值计算和科学计算。在数据处理和科学研究中,文件读写是一项基本且重要的技能。Julia 提供了一套丰富的函数和库来处理文件读写操作,使得文件操作变得简单而高效。 基本文件操作 打开和关闭文件 在 Julia 中…...
为何总是会失败
总是失败可能涉及多种因素,但这里有一些常见原因和对应的建议,或许可以帮助你找到问题所在并加以改进。 1. 目标不明确 原因 目标不清晰或设定过高会导致失望和挫折感。如果目标不明确,行动就会缺乏方向,导致效率低下和失败。 …...
【PB案例学习笔记】-21小大写金额转换
写在前面 这是PB案例学习笔记系列文章的第21篇,该系列文章适合具有一定PB基础的读者。 通过一个个由浅入深的编程实战案例学习,提高编程技巧,以保证小伙伴们能应付公司的各种开发需求。 文章中设计到的源码,小凡都上传到了gite…...
12.实战私有数据微调ChatGLM3
实战私有数据微调ChatGLM3 实战私有数据微调ChatGLM3实战构造私有的微调数据集基于 ChatGPT 设计生成训练数据的 Prompt使用 LangChain GPT-3.5-Turbo 生成训练数据样例训练数据解析、数据增强和持久化存储自动化批量生成训练数据集流水线提示工程(Prompt Engineer…...
PHP地方门户分类信息网站源码讯客分类信息系统源码(含手机版)
源码介绍 1.上传程序到网站根目录,访问http://域名/install/index.php 进行安装,不要直接打开网址,先直接安装; 2.安装完成后 后台恢复数据即可 默认帐号密码都是admin http://域名/admin/ 3.不要删除任何文件,因为删除文件或者修改代码可能造成错误 运…...
设计模式 —— 观察者模式
设计模式 —— 观察者模式 什么是观察者模式观察者模式定义观察者模式的角色观察者模式的使用场景观察者模式的实现 被观察者(Subject)观察者(Observer)通知(notify)更新显示(update)…...
北京品牌网站建设公司/网页设计模板
记录SQL server中datetime2(7)类型数据取年月日时分秒 –取值时间格式为:2021-08-19 Select CONVERT (CHAR(10), History.Date, 120) from History–其中Date为History表中的datetime2(7)类型的字段 –取值时间格式为:08:44:53 Select CONVERT (CHAR(10)…...
传媒免费网站建设/如何优化seo关键词
断言(assertion)是指在开发期间使用的、让程序在运行时进行自检的代码(通常是一个子程序或宏)。断言为真,则表明程序运行正常,而断言为假,则意味着它已经在代码中发现了意料之外的错误。断言对于…...
日新月异网站建设/兴安盟新百度县seo快速排名
文:祈澈姑娘前端学习资源实在是又多又广,在这样的一个知识的海洋里,我们像一块海绵一样吸收,想要快速提高效率,平时的总结不可缺少,以下总结了一些,排版自我感觉良好,推送出来&#…...
优秀企业网站的特点/网站怎么弄
可能是配置的问题。 我将hive.metastore.uris从配置文件中注释掉之后解决了hiveserver2启动成功但无法通过beeline连接的问题。 [rootnode03 conf]# vi hive-site.xml<property><name>hive.metastore.warehouse.dir</name><value>/user/hive_remote/wa…...
盘锦做网站建设的/晚上偷偷看b站软件推荐
一:安装Sublime Text 3插件的方法安装package control组件,然后直接在线安装:1、按Ctrl调出console(注:安装有QQ输入法的这个快捷键会有冲突的。输入法属性设置-输入法管理-取消热键切换至QQ拼音) 2、粘贴下…...
哪家网站建设公司靠谱/专业关键词优化平台
今天在看王爽的《汇编语言》,看到地址总线的时候,由于那个图画的是并行传输,于是我就去搜了下地址总线是不是并行总线,结果看到一篇文章说现在串行总线的传输速度比并行总线要快,我就奇怪了。 在我的印象中,…...