MySQL中的索引之分类,原理,作用,优缺点和执行计划

mysql索引详解 MySQL的存储引擎架构将查询处理与数据的存储/提取相分离 阅读详情

索引

  • 索引的作用:加速查找
    • 例如: 300w条数据的表中查询,无索引需要700s, 利用索引可能只需要1s
    • 用索引的时机是,数据量巨大,并且搜索快速
  • 索引为什么能实现加速查找
    • 基于索引的内部存储结构
    • 索引底层基于 B+Tree 的数据结构存储的
    • 在创建一张表的时候,将数据按照先后顺序放在一个文件里
    • 如果你为表里的数据创建索引后,会将数据生成额外的数据结构
    • 在这个数据结构中,将索引的这一列按照另外的规则进行存储,即 B+Tree 的结构
  • 只要给一个 字段添加索引,就会为这个字段新增一个 B+Tree 的结构
  • 背后的缺点是额外维护数据结构,并且新增或删除数据时,速度比之前要慢
  • 只有查找会变快,新增,修改,删除都会变慢
  • MySQL中的索引都是 基于 B+Tree 实现的
  • 在MySQL中,如果要创建一张表,可以指定不同的引擎
    • myisam 引擎,用的是非聚簇索引 (数据和索引结构 分开存储)
      • 在这个表里创建索引,称为非聚簇索引
      • 表是表,索引结构式索引结构,拆开放的
    • innodb 引擎,用的是 聚簇索引 (数据和主键索引结构存在一起)
      • 创建表的时候,实际上是没有表的,而是将主键通过树形结构存储起来
      • 没有这个表的,节点不仅存储主键,而且把每行存储的信息存储在上面
  • 基于两种引擎创建的表,底层都用 B+Tree 来存储,但是存储中也是不太一样的
  • 有了索引结构的查询效率,比表中逐行查询的速度要快很多,且数据量越大越明显
  • https://www.cs.usfca.edu/~galles/visualization/BPlusTree.html

mysiam引擎

create table 表名(
  id int not null auto_increment primary key,
  name varchar(32) not null,
  age int
) engine=myisam default charset=utf8;
  • 在索引中的节点存储了表中数据行的内存地址, 这样就可以直接找到当前行的数据

聚簇引擎

create table 表名(
  id int not null auto_increment primary key,
  name varchar(32) not null,
  age int
) engine=innodb default charset=utf8;
  • 根据索引结构,通过主键拿到当前行的所有数据
  • 如果除了主键索引,还需要创建如 name 的索引
  • 这时候,就会创建一个辅助索引,生成另外一套数据结构
  • 按照name来存放,会存储主键id, 再根据主键根据主键索引文件中查找

两种索引的文件对比

  • 开发中,一般使用 innodb 引擎,支持事务,行级锁,外键等特点

  • 在mysql5.5之后,所有默认引擎也是 innodb

  • 可以找到 mysql的安装目录,比如:/usr/local/mysql/data/userdb

  • 常见不同引擎的表,生成的文件也不一样

  • 比如 big 这张表,是基于 innodb 引擎的

    • big.frm 表结构
    • big.ibd 数据和索引结构
  • 对于表 t2 是 myisam 引擎的话

    • t2.frm 表结构
    • t2.MYD 数据
    • t2.MYI 索引结构
    • 它的底层帮我们创建3个文件
  • 我们后续用的 innodb ,都是聚簇索引

索引的优缺点

  • 优点: 查找速度快,约束 (主键, 唯一, 联合唯一)
  • 缺点: 插入、删除、更新速度比较慢, 因为每次操作都需要调整整个B+Tree的数据结构关系
  • 所以,在表中不要无节制的创建索引,不使用索引反而会适得其反

查询要命中索引

  • 比如有一张300w数据量的用户表

表结构示例

create table `users` (
  `id` int(11) not null auto_increment,
  `name` varchar(32) default null,
  `email` varchar(64) default null,
  `password` varchar(64) default null,
  `age` int(11) default null,
  primary key (`id`),         --- 主键索引
  unique key `big_unique_email` (`email`),         --- 唯一索引
  index `ix_name_pwd` (`name`, `password`),         --- 联合索引
) engine=InnoDB default charset=utf8;
  • 以上表结构中有三个索引,2个 key, 1个 index(普通)
  • 一般,基于索引列搜索都可命中索引,加速查找
  • 注意,联合索引,查询其中之一也是快的

查询示例

select * from big where id=5;
select * from big where id>5;
select * from big where email='xxxx@qq.com';
select * from big where name='xxx';
select * from big where name='sss' and password='ssdd';

命中索引的场景

  • 以下几种情况是常用的是否命中索引的场景

1 )类型不一致场景

select * from users where name = 123;     -- 不会命中索引
select * from users where email = 123;    -- 不会命中索引

-- 下面用主键
select * from users where id='123';       -- 会命中索引

2 )使用不等于

select * from users where name != 'xxxx';            -- 不会命中索引
select * from users where email != 'xxxx@qq.com';    -- 不会命中索引

-- 主键
select * from users where id != 123;                 -- 不会命中索引

3 )使用 or

select * from users where id = 123 or password = 'x';     -- 不会命中 这里后面联合索引中只用了一个
select * from users where name = 'xx' or password = 'y';    -- 不会命中 用 or 将联合索引拆成了两个

-- 下面会命中
select * from users where id = 10 or password='xx' and name='yy';  -- 命中 这里 or 前后都是索引

4 )使用排序

  • 根据索引排序时,选择的映射列不是索引,则不走索引
select * from users order by name asc;       -- 未命中
select * from users order by name desc;      -- 未命中

-- 主键会命中
select * from users order by id desc;        -- 会命中

5 )like 模糊匹配时

  • 通配符在最后面可以命中
select * from users where name like '%xxx'       -- 不会命中
select * from users where name like '_xxx'       -- 不会命中
select * from users where name like 'xx%xx'      -- 不会命中

-- 通配符在最后,会命中
select * from users where name like "xxxx%"      -- 命中
select * from users where name like "xxxx_"      -- 命中

6 )使用函数

select * from users where reverse(name) = 'xxxx'; --- 不会命中

-- 特别的
select * from users where name = reverse('abc')  -- 会命中

7 )联合索引

  • 如果是联合索引,最遵循最左前缀原则

  • 如果联合索引为 (name, password)

    • name and passsword 命中
    • name 命中
    • password 不会命中
    • name or password 不会命中
  • 最左边用可以命中,用or连接则不能

关于执行计划 explain

  • mysql中提供了执行计划, 用于预判sql的执行效率
  • 不能准确预判,只作为参考
  • 语法:explain sql语句

1 )使用

  • explain select * from users
  • 这会输出当前sql的分析表格

2 )解析 type

  • 基于输出表格字段中的 type 来看,它是一个重要的性能指标

    • 其值的性能依次排序为:
    • all < index < range < index_merge < ref_or_null < ref < eq_ref < system/const
  • 详解如下

    • ALL,全表扫描,数据从头到尾找一遍,(一般没有命中索引,都会执行全部扫描)
      • select * from users 全部扫描
      • select * from users limit 1; 这里特别,遇到 limit 结束后不再扫描
    • INDEX, 全索引扫描,对索引从头到尾扫描一遍
      • explain select id from users;
      • explain select name from users;
    • RANGE, 对索引列进行范围查找
      • explain select * from users where id > 10;
      • explain select * from users where id in (1,2,3);
    • INDEX_MERGE 合并索引,即使用了多个单列索引
      • explain select * from users where id = 10 or name='xxx'
    • REF, 根据索引直接去查找 (非键)
      • select * from users where name = 'xxx'
    • EQ_REF, 连表操作时常见, 也是根据索引查询
      • explain select article.title, users.id from article left join users on user.id = article.uid
    • CONST, 常量,表最多有一个匹配行,因为仅有一行,在这行的列值可被优化器剩余部分认为是常数,const表很快
      • explain select * from users where id = 123; 这里是主键
      • explain select * from users email = 'xxxx@qq.com 唯一索引
    • SYSTEM, 系统,表仅有一行(=系统表) 这里是 const连接类型的一个特例
      • explain select * from (select * from users where id=1 limit 1) as A;
  • 综合以上,一般来说,性能在 RANGE 及其以上,性能算是 OK的

  • 当然,这不是最终结果,只是初步的评价,和最终效率一定会有差异

3 )其他字段

  • id 执行顺序
  • select_type 查询类型
    • SIMPLE 简单查询
    • PRIMARY 最外层查询
    • SUBQUERY 映射为子查询
    • DERIVED 子查询
    • UNION 联合
    • UNION RESULT 使用联合的结果
    • …
  • table 正在访问的表名
  • partitions, 涉及的分区,不常用,mysql将数据划分到不同的 idb文件中,箱单与数据的拆分
    • 分区是指,一个特别大的文件拆分成多个小文件
  • possible_keys, 查询涉及到的字段上若存在索引,则该索引将被列出
    • 即:可能使用的索引
  • key, 在查询中实际使用的索引,若没有使用索引,显示为 null
    • 比如,有索引,但未命中,则 possible_keys显示,key则显示为 null
  • key_len, 表示索引字段最大可能的长度
    • 类型字节长度 + 变长2 + 可空1
    • 例如,key_ken = 195, 类型 varchar(64)
    • 195 = 64 * 3 + 2 + 1
  • ref, 连表时显示的关联信息
    • 例如,A和B连表,显示连表的字段信息
  • rows, 估计读取的数据行数 (只是预估值)
  • filtered, 返回结果的行栈需要读到行的百分比
    • explain select * from users where id = 1; 100, 这里只读了一行,返回结果也是1行
    • explain select * from big where password = 'xxx' 10, 读取了10行,返回了1行,注意,这里 xxx的 password在第10行
  • extra, 该列包含mysql解决查询的详细信息
    • Using index 表示mysql将使用覆盖索引,以避免访问表。不要把覆盖索引和index的访问类型弄混了
    • Using where
      • 表示mysql服务器将在存储引擎检索行后再进行过滤,许多where条件里设计索引中的列
      • 当(并且如果)它读取索引时,就能被存储引擎检验
      • 因此,不是所有带 where 子句的查询都会显示 Using where
      • 有时,Using where的出现就是一个暗示,查询可受益于不同的索引
    • Using temporary
      • mysql在对查询结果排序时会使用一个临时表
    • Using filesort
      • mysql会对结果使用一个外部索引排序,而不是按索引次序从表里读取行
      • mysql有两种文件排序算法,这两种排序方式都可以在内存或磁盘上完成
      • explain 不会告诉你mysql将使用哪一种文件排序,也不会告诉你排序会在内存里还是磁盘上完成
    • Range checked foreachrecord(index map: N)
      • 这意味着没有好用的索引,新的索引将在连接的每一行上重新估算
      • N是显示在possible_keys列中索引的位图,并且是冗余的
HC32F460 SPI DMA 实现高效TFT屏幕刷新的实战解析 本文针对HC32F460 MCU驱动TFT屏幕时刷新卡顿的问题,深入解析了SPI DMA技术的实战应用。通过对比传统查询模式与DMA模式的性能数据,详细阐述了如何配置SPI与DMA资源、构建核心驱动框架,并提供了避坑指南与进阶优化思路,最终实现高效、流畅的屏幕刷新,显著降低CPU占用率。 阅读详情

相关推荐

Python爬虫实战:用BeautifulSoup和Pandas轻松抓取去哪儿网景点数据(附完整代码)

本文详细介绍了如何使用Python的BeautifulSoup和Pandas库构建一个高效的旅游数据爬虫,从去哪儿网抓取景点数据。内容涵盖环境准备、网页结构分析、核心代码实现、反爬策略以及数据清洗与存储,提供完整代码示例,帮助开发者快速掌握数据采集技术。

river的博客 357

MySQL数据库中索引的优点及缺点

一、索引的优点 1)创建索引可以大幅提高系统性能,帮助用户提高查询的速度; 2)通过索引的唯一性,可以保证数据库表中的每一行数据的唯一性; 3)可以加速表与表之间的链接; 4)降低查询中分组和排序的时间。 当然了,没有任何事情是完美的,索引也是如此,尽管索引好处非常多,但是其也有局限性合理性以及片面性。 二、索引的缺点 1)索引的存储需要占用磁盘空间; 2)当数据的量非常巨大时,索引的创建和维护所耗费的时间也是相当大的; 3)当每次执行CRU操作时,索引...

CodeBlues的博客 1万+

从零到一:R与RStudio的安装与配置全攻略

本文提供了R与RStudio的完整安装与配置指南,涵盖Windows、Mac和Linux三大操作系统。从基础环境搭建到高级性能优化,详细介绍了R语言安装、RStudio配置、项目管理和实用技巧,帮助数据科学初学者快速搭建高效的分析工作环境。

weixin_29062671的博客 420

MySQL索引结构分类及其优劣选择详解

索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据库系统中,除了存储数据之外,还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据。这样就在这些数据上实现了高级查找算法,这种数据结构就是索引。

一个编程爱好者的博客 2671

Apollo和autoware规划算法代码ros移植-路径规划可跑工程分享

Apollo6.0规划核心代码移植到Ros工程,可编译移植分享

weixin_39735688的博客 8509

AWS RDS 介绍 三)创建 RDS 实例

AWS RDS 介绍 共分为 7 个部分, 其中 第 3部分重点介绍,如何创建一个RDS 实例。 三) AWS RDS 试用MySQL http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.MySQL.

XuYongshi02的专栏 7647

mysql的索引的作用_数据库索引的作用,优点和缺点

第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。第二,可以大大加快 数据的检索速度,这也是创建索引的最主要的原因。第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。第四,在使用分组和排序 子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。也许会有人要问:增加索引有如此多的优点...

weixin_34952098的博客 802

GD32的低功耗模式:睡眠、深度睡眠与待机模式

GD32F4xx提供三种主要低功耗模式,功耗逐级降低:睡眠模式 (Sleep Mode)关闭CPU时钟,保持外设运行任意中断/事件唤醒深度睡眠模式 (DeepSleep Mode)关闭CPU和大部分外设时钟需特定唤醒源(外部中断、RTC等)待机模式 (Standby Mode)最低功耗,仅备份域维持供电仅支持复位、RTC、WKUP引脚唤醒。

波风水门的博客 2277

Mysql索引的优点、缺点、分类及使用方法

文章目录前言优点缺点分类1.聚簇索引2.非聚簇索引【二级索引、辅助索引】二者区别 前言 1.索引是一种可以帮助 Mysql 高效获取数据的数据结构,目的是为了减少磁盘I/O次数,加快查询速度 2.索引是在存储引擎中实现的,每种存储引擎实现索引的方式可能不通,其中Mysql的InnoDB引擎的索引底层采用B+树算法实现 3.所有存储引擎支持每个表至少16个索引,总索引长度至少为256个字节 优点 1.降低数据库I/O成本 2.对有依赖关系的子表和父表联合查询时,可以提高查询速度 3.在使用 group b

什么都干的派森 2617

基于DSIFT多尺度图像融合的MATLAB代码

多尺度图像融合是一种常用的图像处理技术,它可以将具有不同尺度和空间频率特征的图像融合成一幅更具信息丰富度和视觉效果的图像。DSIFT算法是一种基于SIFT算法的改进版本,它在提取图像特征时采用了密集采样的方法,能够有效地提取图像的局部特征。多尺度图像融合基于DSIFT算法的思想,通过在不同尺度下提取图像的DSIFT特征,并将这些特征进行融合,得到最终的融合图像。然后,通过DSIFT算法提取了两幅图像的特征。通过运行上述代码,我们可以在MATLAB中实现基于DSIFT多尺度图像融合的算法,并观察到融合结果。

IELLQUI9的博客 181

openharmony之启动恢复子系统详解

需求: 添加一个名为my_service的自定义服务步骤1: 创建服务配置],],"env": [步骤2: 添加到主配置],"jobs": ["cmds": [步骤3: 验证配置# ✅ 检查配置格式 jq . /system/etc/init/my_service.cfg # 🔄 重新加载配置 begetctl reload # 📊 验证服务状态 begetctl dump_service my_serviceOpenHarmony init进程的完整生命周期。🔄 三阶段启动模型⚙️ 配置体系。

m0_67505153的博客 602

MySQL 5种索引应用

在本篇文章中,我们将学习MySQL中5种不同类型的索引及其应用场景,以及它们的优缺点。MySQL的索引对于数据库的性能和效率有非常重要的作用。在使用MySQL索引时,需要注意以下几个方面:合适的索引类型:MySQL支持多种类型的索引,如普通索引、唯一索引、主键索引、组合索引和全文索引等。不同的索引类型适用于不同的查询场景,选择合适的索引类型可以减少查询时间和IO操作,提高数据检索速度。建立索引的列:建立索引的列应该选择具有高选择性的列,它们的值分布范围应该尽可能地大,这样可以减少索引查找的次数。

鹏鹏2077 1844

Token 费用爆炸?教你用 Semantic Cache(语义缓存)把 API 成本降低 80%

本文介绍了语义缓存(Semantic Cache)技术在大模型应用中的关键作用。传统Redis缓存基于精确匹配,无法处理用户提问的语义相似性,导致重复调用昂贵的LLM API。语义缓存通过将问题向量化并在向量空间中进行相似度匹配,可识别30%-50%的重复提问,直接返回历史答案。文章详细解析了技术原理(Embedding+向量搜索)、架构设计,并提供了基于Python和ChromaDB的50行核心实现代码。同时指出了生产环境中的三大挑战:阈值设定、隐私保护和多轮对话处理,并给出相应解决方案。该技术能以极低成

BUG猿的博客 1056

MySQL索引

索引(index)是帮助MySQL高效获取数据的数据结构(有序在数据之外,数据库系统还维护着满足特定查找算法的数据结构,数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这些数据结构就是索引。备注:上述二叉树索引结构的只是一个示意图,并不是真实的索引结构。

m0_74270206的博客 87

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

深入理解MySQL索引原理和实现——为什么索引可以加速查询?

说到索引,很多人都知道“索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址,在数据十分庞大的时候,索引可以大大加快查询的速度,这是因为使用索引后可以不用扫描全表来定位某行的数据,而是先通过索引表找到该行数据对应的物理地址然后访问相应的数据。” 但是索引是怎么实现的呢?因为索引并不是关系模型的组成部分,因此不同的DBMS有不同的实现,我们针对MySQL数据库的实现进...

tongdanping的博客 16万+

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

MySQL索引的优缺点

一、什么是索引 索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存。如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。表里面的记录数量越多,这个操作的代价就越高。如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置。 例如有三张表分别是t1、t2、t3,每个表都有字段a1、a2、...

Be Like 7195

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

MYSQL索引底层原理

MYSQL索引底层原理

winy1986的博客 3863

索引定义、作用和分类

索引定义、作用、分类、优化建议、失效场景

Xyuan的博客 1598

MySQL索引:B+树原理揭秘与索引优缺点分析

索引是存储引擎中,用于快速找到记录的一种数据结构。索引能够帮助存储引擎快速获取数据,形象的说就是索引是数据的目录。所谓的存储引擎,通俗的来说就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等 技术的实现方法。MySQL存储引擎有MyISAMInnoDBMemory,其中InnoDB是在MySQL 5.5之后成为默认的存 储引擎。在实际场景中,索引对于良好的性能起到非常关键的作用。

m0_73978383的博客 1103

Mysql索引原理及SQL优化

一、什么是索引? 索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-tree的形式保存。如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。表里面的记录数量越多,这个操作的代价就越高。如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置。如果表有100万条记录,通过索引查找记录至少要比顺序扫...

zp的博客 6849

MySQL【理论篇】06:索引相关【定义、原理、分类、作用】

MySQL【理论篇】06:索引相关【定义、原理、分类、作用】

weixin_40612128的博客 796

MySQL索引作用和用法详解

一、引言 对于该文章,照例尽量通俗的写,并注明一些细节和可能出现问题的地方。 此外,该文章只是写了索引的创建,不代表检索(查询)的应用,检索后面会写道。 标注:红色表示十分重要,蓝色表示细节; 在阅读这文章之前,如果初学MySQL不久,应已经熟悉:表约束操作、表的创建以及增删改查数据、熟知InnoDB和M有ISAM存储引擎、SQL数据类型更好 二、索引基本概念和功能 1.索引概念 索引...

hernofogot的博客 2724

MySQL索引原理和实现

说到索引,很多人都知道“索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址,在数据十分庞大的时候,索引可以大大加快查询的速度,这是因为使用索引后可以不用扫描全表来定位某行的数据,而是先通过索引表找到该行数据对应的物理地址然后访问相应的数据。” 但是索引是怎么实现的呢?因为索引并不是关系模型的组成部分,因此不同的DBMS有不同的实现,...

博客空间 7383

MySQL 的索引、执行计划、优化器算法

SQL处理流程 INDEX 索引 索引介绍 索引:是排序的快速查找的特殊数据结构,定义作为查找条件的字段上,又称为键key,索引通过存储引擎实现; 索引相当于一本书的目录,可以优化查询。 优点: 索引可以降低服务需要扫描的数据量,减少了IO次数 索引可以帮助服务器避免排序和使用临时表 索引可以帮助将随机I/O转为顺序I/O 缺点: 占用额外空间,影响插入速度 索引类型: B+ TREE、HASH、R TREE、FULL TEXT 聚簇(集)索引、非聚簇索引:数据和索引是否存储在一起 主键索引、

weixin_45584754的博客 936

MySQL索引深入解析:理解索引的本质、分类、选择和最佳实践

MySQL索引是数据库中不可或缺的优化工具,通过合理使用索引可以大大提升查询性能。理解索引的工作原理、选择合适的索引类型和存储引擎,并根据实际业务需求进行优化,是每个开发者应该掌握的技能。在实际项目中,遵循索引使用的最佳实践,能够在保证性能的同时,避免潜在的性能瓶颈。希望本文为你提供了一个全面的MySQL索引解析,帮助你更好地理解并应用索引,提升数据库性能。

一碗黄焖鸡三碗米饭的博客 1496

数据库索引的作用?什么时候用索引?优缺点?

数据库索引 索引是对数据库表中的一列或多列值进行排序的一种结构,使用索引可以快速访问数据库表中的特定信息。 索引类型 (1)普通索引 ◆创建表的时候直接指定 CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, INDEX [indexName] (username(length)) ); 删除索引的语法: DROP INDEX [indexName] ON mytable;

yiqqYi的博客 5958
上一篇: MySQL中常用的用户授权操作
下一篇: Go语言中支持的internal目录配置与组织内私网包配置详解
Wang's Blog
博客等级 码龄12年 7433粉丝 2421原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wang's Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值