当前位置: 首页 > article >正文

MySQL 索引的增删改查

MySQL 索引的增删改查

1 建表时创建索引

[UNIQUE|FULLTEXT|SPATIAL] INDEX|KEY  [别名] (字段名 [(长度)] [ASC|DESC] )

主键直接写:

PRIMARY KEY (Id)

例如:

CREATE TABLE people (id int NOT NULL PRIMARY KEY AUTO_INCREMENT,last_name varchar(10) NOT NULL,first_name varchar(10) NOT NULL,age int NOT NULL,brithday DATE NOT NULL,create_date date NOT NULL,KEY one_index (last_name, first_name, brithday),KEY two_index (last_name, first_name)
)
  • UNIQUE是可选参数,表示索引为唯一性索引;
  • FULLTEXT是可选参数,表示索引为全文索引;
  • SPATIAL也是可选参数,表示索引为空间索引;
  • INDEXKEY参数用来指定字段为索引,选择其中一个就可以了,作用一样;
  • 别名是可选参数,用来给创建的索引取的新名称;
  • 字段名参数指定索引对应的字段的名称,该字段必须为前面定义好的字段;
  • 长度是可选参数,其指索引的长度,必须是字符串类型才可以使用;
  • ASCDESC都是可选参数,"ASC"参数表示升序排列,"DESC"参数表示降序排列。

2 创建索引

alter table 方式

ALTER TABLE table_name ADD INDEX index_name (column_list)
ALTER TABLE table_name ADD UNIQUE (column_list)
ALTER TABLE table_name ADD PRIMARY KEY (column_list)
  • table_name是要增加索引的表名
  • column_list指出对哪些列进行索引,多列时各列之间用逗号分隔
  • index_name索引名可选,缺省时,MySQL将根据第一个索引列赋一个名称。
  • PRIMARY KEY索引仅是一个具有名称 PRIMARYUNIQUE索引。这表示一个表只能包含一个PRIMARY KEY,因为一个表中不可能具有两个同名的索引。

另外,ALTER TABLE允许在单个语句中更改多个表,因此可以在同时创建多个索引。

create index 方式

CREATE INDEX index_name ON table_name (column_list)
CREATE UNIQUE INDEX index_name ON table_name (column_list)
  • table_nameindex_namecolumn_listALTER TABLE语句含义相同
  • 索引名不可选

另外,不能用CREATE INDEX语句创建PRIMARY KEY索引。

3 删除索引

DROP INDEX index_name ON talbe_name
ALTER TABLE table_name DROP INDEX index_name
ALTER TABLE table_name DROP PRIMARY KEY
  • 前两条语句是等价的,删除掉table_name中的索引index_name
  • 第3条语句只在删除PRIMARY KEY索引时使用,因为一个表只可能有一个PRIMARY KEY索引,因此不需要指定索引名。如果没有创建PRIMARY KEY索引,但表具有一个或多个UNIQUE索引,则MySQL将删除第一个UNIQUE索引。

4 查看索引

mysql> show index from tblname;
mysql> show keys from tblname;
字段含义
Table表的名称
Non_unique如果索引不能包括重复词,则为0。如果可以,则为1
Key_name索引的名称
Seq_in_index索引中的列序列号,从1开始
Column_name列名称
Collation列以什么方式存储在索引中。在MySQL中,有值‘A’(升序)或NULL(无分类)
Cardinality索引中唯一值的数目的估计值。通过运行ANALYZE TABLEmyisamchk -a可以更新。基数根据被存储为整数的统计数据来计数,所以即使对于小型表,该值也没有必要是精确的。基数越大,当进行联合时,MySQL使用该索引的机会就越大
Sub_part如果列只是被部分地编入索引,则为被编入索引的字符的数目。如果整列被编入索引,则为NULL
Packed指示关键字如何被压缩。如果没有被压缩,则为NULL
Null如果列含有NULL,则含有YES。如果没有,则该列含有NO
Index_type用过的索引方法(BTREE, FULLTEXT, HASH, RTREE)

相关文章:

MySQL 索引的增删改查

MySQL 索引的增删改查 1 建表时创建索引 [UNIQUE|FULLTEXT|SPATIAL] INDEX|KEY [别名] (字段名 [(长度)] [ASC|DESC] )主键直接写: PRIMARY KEY (Id)例如: CREATE TABLE people (id int NOT NULL PRIMARY KEY AUTO_INCREMENT,last_name varchar(10)…...

MySQL Host 被封锁解决方案(全版本适用 + Java 后端优化)

引言 MySQL 中 “Host is blocked because of many connection errors” 是生产环境常见问题,若处理不当会导致服务中断。本文结合 MySQL 官方文档(5.5/8.0)、Java 后端最佳实践及企业级经验,提供从 “快速解封” 到 “根源优化”…...

wifi 如果检查失败,UI 就会出现延迟或缺失打勾的现象。

问题:connectedSsid 的初始化依赖 onCreate 中的状态检查,如果检查失败,UI 就会出现延迟或缺失打勾的现象。 WIFI界面上上的一个标识代表成功连接。重启后出现偶尔不打勾的情况。 原始代码: // if (connectedSsid !…...

点云(point cloud):自动驾驶的“三维扫描图“

点云(Point Cloud):就是用很多“点”来表示一个物体或场景的三维形状和结构。(用点描绘的3D画,好比素描,但不是用线条勾勒,而是“点点点点”拼出物体形状) 观察这幅图像,…...

Redis 中如何保证缓存与数据库的数据一致性?

在 Redis 中保证缓存与数据库的数据一致性是一个关键问题,尤其是在高并发环境下。由于缓存和数据库是两个独立的数据存储系统,它们之间的数据同步存在延迟和不确定性,因此需要采取一系列策略来保证数据的一致性。以下是几种常用的方法和策略&…...

Oracle RAC节点时间差异同步测试

前言: Oracle Real Application Clusters (RAC) 集群依赖于各节点间的心跳检测与缓存融合等机制,这些机制对节点间的时钟同步性有极高的要求。如果集群内不同节点之间存在显著的时间偏差,可能会导致整个集群运行异常。在较早版本的RAC中&…...

python 打卡DAY27

##注入所需库 import pandas as pd import seaborn as sns import matplotlib.pyplot as plt import random import numpy as np import time import shap # from sklearn.svm import SVC #支持向量机分类器 # # from sklearn.neighbors import KNeighborsClassifier …...

位运算及其算法

计算机中的所有数在内存中都是以二进制形式进行存储的 ,位运算就是直接对整数二进制位进行操作,有些时候在程序中使用位运算进行操作,会得到极高的便利性。 有符号整数与无符号整数 我们以int整型为例,每个int占4个字节32个bit位…...

flutter getx路由管理、状态管理、路由守卫中间件、永久储存get_storage

一个简单的路由跳转、状态管理 目录 lib/ ├── main.dart ├── routes/index.dart // 路由表 ├── middlewares/auth_middleware.dart // 登录守卫 ├── pages/ │ ├── home_page.dart │ ├── login_page.dart │ └── profile_page.dart └─…...

贪心算法之跳跃游戏问题

问题背景 本文背景是leetcode的一道经典题目:跳跃游戏,描述如下: 给定一个非负整数数组 nums,初始位于数组的第一个位置(下标0)。数组中的每个元素表示在该位置可以跳跃的最大长度。判断是否能够到达最后…...

Dockers Compose常用指令介绍

Dockers Compose常用指令 1、常用指令介绍 1.1、version 指令 顶级一级指令,指定 compose 指定文件格式版本 version: "3.8" services: 不同版本支持的功能不同。常用版本有 ‘2’, ‘3’, ‘3.8’ 等。 1.2、services 指令 顶级一级指令&#xff0…...

YOLOv11 性能评估与横向对比

在第二章中,我们深入剖析了 YOLOv11 的核心技术,从骨干网络、颈部网络到头部,再到损失函数、数据增强和训练策略的创新,揭示了其高性能背后的奥秘。然而,理论的强大最终需要通过严谨的实验数据来验证。本章将详细阐述 …...

kafka在线增加分区副本数

1、问题来源 线上有一个物联网项目依赖kafka集群中指定主题消费,前些天kafka集群中的某一台机器出现了故障,导致kafka这个主题的数据一直无法消费,经查发现为了保证消息的顺序性此主题仅设置了一个分区,但是副本也仅有一个&#…...

Unity 如何使用Timeline预览、播放特效

在使用unity制作和拟合动画时,我们常用到Timeline,前后拖动滑轨,预览动画正放倒放非常方便。如果我们想对特效也进行这个操作,可以使用下文的步骤。 至此,恭喜你又解锁了一个新的技巧。如果我的分享对你有帮助&#xf…...

GIM发布新版本了 (附rust CLI制作brew bottle流程)

GIM 发布新版本了!现在1.3.0版本可用了 可以通过brew upgrade git-intelligence-message升级。 初次安装需要先执行 brew tap davelet/gim GIM 是一个根据git仓库内文件变更自动生成git提交消息的命令行工具,参考前文《GIM: 根据代码变更自动生成git提交…...

GitHub 趋势日报 (2025年05月21日)

本日报由 TrendForge 系统生成 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日整体趋势 Top 10 排名项目名称项目描述今日获星总星数语言1microsoft/WSLLinux的Windows子系统⭐ 1731⭐ 25184C2virattt/ai-hedge-fundA…...

MySQL篇-其他面试题

MySQL事务 问题:事务是什么?ACID问题 事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。 1、事务…...

iOS 蓝牙开发中的 BT 与 BLE

在 iOS 开发者的语境里,大家把 BT 和 BLE 当成两种不同的蓝牙技术在谈——它们来自同一个 Bluetooth 规范,但面向的场景、协议栈乃至 Apple 提供的 API 都截然不同。 缩写全称 / 技术名称规范层叫法iOS 支持现状典型用途BTBluetooth Classic&#xff08…...

Git的工作区,暂存区,本地仓库

Git 核心概念解析 1. 工作区(Working Directory) - 日常操作代码的目录,包含项目所有文件和子目录 - 开发者直接编辑和修改文件的位置 - 实际可见的项目文件结构 2. 暂存区(Staging Area) - 临时保存修改记录的缓冲区…...

鸿蒙Flutter实战:21-混合开发详解-1-概述

引言 在前面的系列文章中,我们从搭建开发环境开始,讲到如何使用、集成第三方插件,如何将现有项目进行鸿蒙化改造,以及上架审核等内容;还以高德地图的 HarmonyOS SDK 的使用为例, 讲解了如何将高德地图集成…...

MySQL错误1419(HY000)解决方案:SUPER权限缺失与二进制日志启用冲突的3种处理方式

一、错误背景与原因分析 错误描述 在执行存储过程、函数或触发器时,MySQL可能抛出以下错误: ERROR 1419 (HY000): You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)…...

[架构之美]从PDMan一键生成数据库设计文档:Word导出全流程详解(二十)

[架构之美]从PDMan一键生成数据库设计文档:Word导出全流程详解(二十) 一、痛点 你是否经历过这些场景? 数据库字段频繁变更,维护文档耗时费力用Excel维护表结构,版本混乱难以追溯手动编写Word文档&#…...

大量程粗糙度轮廓仪适用于哪些材质和表面?

大量程粗糙度轮廓仪是一种能够在广泛的测量范围内对工件表面进行粗糙度分析的精密仪器。它通常采用接触式或非接触式传感器,通过对工件表面的扫描,捕捉表面微观的起伏和波动,从而获取粗糙度数据。该仪器不仅能测量微小的表面细节,…...

linux 查看java的安装路径

一、验证Java安装状态 java -version正常安装会显示版本信息: openjdk version "1.8.0_65" OpenJDK Runtime Environment (build 1.8.0_65-b17) OpenJDK 64-Bit Server VM (build 25.65-b01, mixed mode)二、检查环境变量配置 若已配置JAVA_HOME&#…...

C 语言程序终止的艺术:理解 return main 与 exit() 函数

各类资料学习合集下载地址: ​​​​https://pan.quark.cn/s/472bbdfcd014​​ 每个 C 语言程序都有其起点——​​main​​ 函数。同样,每个程序也都有其终点,即程序执行完毕并退出。在 C 语言中,主要有两种方式可以优雅或立即地终止整个程序的执行,并将一个状态码传递给…...

数据实时同步:inotify + rsync 实现数据实时同步

1 数据实时同步 在生产环境中,某些场景下,要将数据或文件进行实时同步,保证数据更新后其它节点能立即获得最新的数据。 数据同步的两种方式 PULL:拉,使用定时任务的方式配合同步命令或脚本等,从指定服务…...

LeetCode 404.左叶子之和的迭代求解:栈结构与父节点定位的深度解析

一、题目解析:左叶子的定义与问题本质 题目描述 LeetCode 404. 左叶子之和要求计算二叉树中所有左叶子节点的值之和。左叶子的定义是:如果一个节点是其父节点的左子节点,并且它本身没有左右子节点,则称为左叶子。 关键要点 左…...

Unity-编辑器扩展

之前我们关于Unity的讨论都是针对于Unity底层的内容或者是代码层面的东西,这一次我们来专门研究Unity可视化的编辑器,在已有的基础上做一些扩展。 基本功能 首先我们来认识三个文件夹: Editor,Gizmos,Editor Defaul…...

【自用-python】生成准心居中exe程序,防止云电脑操作时候鼠标偏移

封装exe:: altf12是终端---我理解的就是最初始python的运行台 看where python(Windows的)看是在那个路径 再确保之前pip安装了pyinstaller 然后pyinstaller --onefile --noconsole --name 输出exe的文件名称 你的py文件名称.py…...

Lucide:一款精美的开源矢量图标库,前端图标新选择

名人说:博观而约取,厚积而薄发。——苏轼《稼说送张琥》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、前言:为何选择 Lucide?二、Lucide 是什么?1.…...