MySQL——索引

2023-11-03

1、简介

MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。
索引在小数据量的时候,用处不大,但是在大数据的时候,区别十分明显。

2、索引的分类

2.1、主键索引(PRIMARy KEY)

  • 唯一的标识,主键不可重复,一个表只能有一个主键。

2.2、唯一索引(UNIQUE KEY)

  • 避免重复的数据出现,唯一索引可以重复,一个表中可以有多个唯一索引

2.3、常规索引(KEY/INDEX)

  • 默认的,index,key关键字来设置

2.4、全文索引(FullText)

  • 在特定的数据库引擎下才有,MySAM
  • 快速定位数据

3、测试索引

3.1、创建100万条数据

CREATE TABLE `app_user` (
`id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(50) DEFAULT'' COMMENT'用户昵称',
`email` VARCHAR(50) NOT NULL COMMENT'用户邮箱',
`phone` VARCHAR(20) DEFAULT'' COMMENT'手机号',
`gender` TINYINT(4) UNSIGNED DEFAULT '0'COMMENT '性别(0:男;1:女)',
`password` VARCHAR(100) NOT NULL COMMENT '密码',
`age` TINYINT(4) DEFAULT'0'  COMMENT '年龄',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP,
`update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT = 'app用户表'

-- 插入100玩数据
DELIMITER $$ -- 写函数之前必须要写,标志
CREATE FUNCTION mock_data()
RETURNS INT
BEGIN
	DECLARE num INT DEFAULT 1000000;
	DECLARE i INT DEFAULT 0;
	WHILE i<num DO
		INSERT INTO app_user(`name`,`email`,`phone`,`gender`,`password`,`age`) 
		VALUES(CONCAT('用户',i),'2929054638@qq.com',CONCAT('15',FLOOR(RAND()*(999999999-100000000)+100000000)),
		FLOOR(RAND()*2),UUID(),FLOOR(RAND()*100));
		SET i=i+1;
	END WHILE;
	RETURN i;
END;
SELECT mock_data()
  • 查询第999999条数据:SELECT * FROM app_user WHERE name=‘用户999999’;
    在这里插入图片描述

3.2、添加索引

-- id_表名_字段名
CREATE INDEX id_app_user_name ON app_user(`name`)
  • 查询第999999条数据:SELECT * FROM app_user WHERE name=‘用户999999’;
    在这里插入图片描述

4、索引原则

  • 索引不是越多越好
  • 不要对经常变动数据加索引
  • 小数据量的表不需要加索引
  • 索引一般加在常用来查询的字段上
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL——索引 的相关文章

随机推荐

  • 数据结构-顺序表(c++)含全代码

    顺序表的原理及实现 文章目录 前言 一 顺序表是什么 二 创建顺序表 三 顺序表的初始化及销毁 1 顺序表的初始化 2 顺序表的销毁 四 顺序表的基本操作 1 顺序表的添加元素 2 顺序表的插入元素 3 顺序表的删除元素 4 打印顺序表的元
  • error: Store update, insert, or delete statement affected an unexpected number of rows (0). Entities

    Store update insert or delete statement affected an unexpected number of rows 0 Entities may have been modified or delet
  • 计算机中数的存储形式(原码,反码,补码的表示)

    原码 反码和补码知识点 1 原码 10进制转换成2进制是原码 只不过正数的原码是本身符号位为0 负数的原码符号位为1 例 单字节的1 10进制1的原码是0000 0001 10进制 1的原码是1000 0001 2 反码 正数的反码是它本身
  • Ueditor设置默认字体、字号、行间距,添加字体种类

    Ueditor默认字体 字号 行间距的修改 ueditor默认字号是16号 默认字体为sans serif 默认行间距为5px 如下图所示 首先 修改ueditor all js文件中如上图红框中对应的字体 字号 行间距的值 其次 uedi
  • 查询三方jar包漏洞

    安全检测的时候一般会对第三方的jar包扫描 下面的地址可以根据artifactId 或者漏洞查询相应的不同版本漏洞 然后自己做相应的处理 一般都是升级包 或者直接用功能类似的包替换 避免重大事故 nvd漏洞查询
  • MySQL数据库——数据库和表的基本操作(一)

    目录 第1关 查看表结构与修改表名 一 本关任务 修改表名 并能顺利查询到修改后表的结构 查看数据表基本结构 查看数据表详细结构 修改表名 二 编程要求 三 预期输出 四 代码 第2关 修改字段名与字段数据类型 一 本关任务 修改表中的字段
  • 2020牛客暑期多校训练营(第八场)E Enigmatic Partition —— 找规律,差分上差分,有丶东西

    This way 题意 定义合法序列 n a1 a2 am m的大小是你自己构造的 m gt 3 并且满足以下条件 定义f n 为构造n的合法序列的情况数 然后每次问你n为l r中所有数的f的和是多少 题解 其实就相当于要预处理每个数有多少
  • Windows使用串口API函数串口编程

    Windows使用串口API函数串口编程 前言 1 打开串口 1 1 参数详解 1 2 代码示例 1 2 1 获取串口号 1 2 2 打开串口 同步通信 1 2 3 打开串口 异步通信 2 关闭串口 3 配置串口 3 1 配置输入输出缓冲区
  • 20230705

  • python将生成的数据按类别以不同颜色作散点图

    遇事不决 可问春风 春风不语 即随本心 文章目录 文章目录 前言 一 实例 1 读取数据 2 创建空数组 3 数据处理 4 绘制散点图 总结 前言 我们在处理分类问题时 经常需要用图表的形式将数据表现出来 这样会更直观的了解分类效果 一 实
  • nodejs的加密方式

    nodejs的加密方式 一 加密算法 为了保证数据的安全性和防篡改 很多数据在传输中都进行了加密 加密可分为三大类 对称加密 非对称加密 摘要算法 二 对称加密 采用单钥密码系统的加密方法 同一个密钥可以同时作用信息的加密和解密 该方法称为
  • C++中使用tuple

    本文讨论的是在C 11标准下使用tuple 而不是python语言 说到tuple 肯定会第一时间想到python语言 但tuple也不仅仅只在python中有 在C C 等语言中都有这样的数据结构 在C 中的tuple和python语言中
  • 解决VS无法识别手动创建的app.manifest文件的问题

    解决VS无法识别手动创建的app manifest文件的问题 解决方案 删除手动添加的app manifest文件 修改项目属性使项目自动添加app manifest文件 操作流程 1 选择当前项目 单击鼠标右键 选择 属性 2 在 属性
  • 语言小型心形图案代码_C语言写一个小程序,胖胖的爱心桃

    学了这么久的C语言 你是不是有很多会写的小玩意了呢 比如说简单的五角星 三角形 等腰三角形 心形之类的 笔者今天发现了个以前写的一个很好玩的小程序分享给大家 画心的C语言 include
  • python 对二维列表的排序

    例如 这样的列表 对它进行排序 第一种 使用lambda对列表中的数据进行排序 如果不懂lambda的可以去百度哦 有很多详细内容 按数字排序 mylist 张三 0 3 李四 0 4 王五 0 8 谢大脚 0 9 谢广坤 0 1 myli
  • edp和edt哪个好_香水edp和edt的区别

    在香水瓶子上 通常会看到edp和edt的标志 它们的具体区别如下 1 含义不同 E D P是Eau de Parfum的缩写 意思是淡香精 而E D T是Eau de Toilette的缩写 意思是淡香水 2 香精浓度不同 E D P的纯香
  • 以图搜图算法java_龙猫数据爬图新姿势:以图搜图

    如果说购物网站近两年有什么新变化 除了商品类别增多以外 以图搜图功能绝对算很重要的一个 看到自己喜欢的东西根本不用问具体信息 随手一拍马上就能在购物网站找同款 识别率相当高 真是方便又快捷 今天我们就来介绍下 这么好用的生产力工具是如何 进
  • Hiredis_API说明

    转 https blog csdn net xumaojun article details 51597468 同步的API接口 redisContext redisConnect const char ip int port void r
  • Qt信号与槽的Connect详解

    QT通过connect关联信号和槽函数 一 槽函数的执行是同步还是异步 在同一个线程中 Qt信号槽的执行是同步的 当一个信号被发射时 槽函数会立即被调用 而不是被放入事件队列中 这是因为在同一个线程中 事件循环和槽函数都是在同一个线程中执行
  • MySQL——索引

    文章目录 1 简介 2 索引的分类 2 1 主键索引 PRIMARy KEY 2 2 唯一索引 UNIQUE KEY 2 3 常规索引 KEY INDEX 2 4 全文索引 FullText 3 测试索引 3 1 创建100万条数据 3 2