NoteOfMySQL-07-索引

1. 索引概述

创建索引的目的是为了优化数据库的查询速度,不添加索引的情况下需要遍历所有数据才能进行删、查、改等操作。

2. 索引存储类型

存储类型 支持的存储引擎 B型树(BTREE)索引 InnoDB、MyISAM 哈希(HASH)索引 MEMORY

3. 索引的优缺点

  • 加快数据检索速度。

  • 增加创建索引、维护索引的时间。

  • 索引需要占据物理空间。
  • 增加索引时,会提高检索性能,但会降低修改性能;减少索引相反。

4. 索引的特征

保证唯一性,可以创建主键约束或唯一性约束,而不能只单单创建唯一性索引。

复合索引是一个索引创建在两个列或者多个列上,搜索时,以这几个列作为关键值。

  • 最多可以把16个列合并成一个单独的复合索引。
  • 复合索引中,所有的列必须来自同一个表,不能跨表创建复合索引。
  • 复合索引中,列的排序顺序是很重要的,不能调换。

5. 索引分类

text、image、bit数据类型的列不应增加索引。

普通索引可以创建在任何数据类型中,其值的约束由字段本身的完整性约束条件决定。

设置索引唯一。主键就是一种特殊的唯一性索引。

全文索引只能创建在CHAR、VARCHAR、TEXT类型的字段上,全文索引可以提高对于数据量较大的字符串类型的查询速度。
数据库从3.23.23版的MyISAM搜索引擎开始支持全文索引,直到5.6版,InnoDB也支持全文索引。

在单列上创建索引。

在多列上创建索引。

空间索引只能创建在空间数据类型上,目前只有MyISAM搜索引擎支持空间检索,而且检索字段不能为null。MySQL中的控件数据类型包括GEOMETRY、POINT、LINESTRING、POLYGON等。

1. 创建索引

-- 创建表时
create table table_name (
    ...
    [UNIQUE | FULLTEXT] INDEX | key [index_name] (state [(length)] [ASC|DESC])
);
-- 创建表后
create [UNIQUE | FULLTEXT] INDEX index_name on table_name(state[(length)] [ASC | DESC]);

alter table table_name add [UNIQUE | FULLTEXT] INDEX|KEY [index_name] (state[(length)] [ASC|DESC]);

2. 查看索引

-- 法一
show index from table_name[ from db_name];
-- 法二
MySQL show -k db_name table_name;

返回的字段 说明 table 表名称 Non_unique 索引是否包含重复词 key_name 索引名称 Seq_in_index 索引中的列序号 Column_name 列名称 collation 列在索引中的存储方式 cardinality 索引中唯一值的数目的估计值 sub_part 部分被编入索引?数目:NULL packed 关键字如何被压缩 null 列中含有NULL为YES,否则为NO Index_type 索引方法,如Btree、FullText、Hash、Rtree comment 评注

3. 删除索引

-- 法一
drop index index_name on table_name;
-- 法二
alter table table_name drop index index_name;

Original: https://www.cnblogs.com/bpf-1024/p/14059640.html
Author: 步平凡
Title: NoteOfMySQL-07-索引

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/612013/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 国产化之x64平台安装银河麒麟操作系统

    背景 某个项目需要实现基础软件全部国产化,其中操作系统指定银河麒麟v4,CPU使用飞腾处理器。飞腾处理器是ARMv8架构的,在之前的文章中介绍了使用QEMU模拟ARMv8架构安装银…

    Linux 2023年5月27日
    089
  • python动态网站爬虫实战(requests+xpath+demjson+redis)

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月7日
    0115
  • Mac远程windows工具

    现在很多小伙伴都是使用MAC系统,但在工作中或多或少会遇到需要远程windows的情况,今天给大家安利一款软件,让你轻轻松松远程windows Microsoft Remote D…

    Linux 2023年6月7日
    0105
  • PyTorch 介绍 | DATSETS & DATALOADERS

    用于处理数据样本的代码可能会变得凌乱且难以维护;理想情况下,我们希望数据集代码和模型训练代码解耦(分离),以获得更好的可读性和模块性。PyTorch提供了两个data primit…

    Linux 2023年6月16日
    0104
  • mysql通过mysqldump命令重做从库详细操作步骤

    备份主库所有数据,并将dump.sql文件拷贝到从库/tmp目录 mysqldump -uroot -p –set-gtid-purged=OFF –single-transa…

    Linux 2023年6月8日
    078
  • bootstrap的基础使用

    Bootstrap Bootstrap是Twitter推出的一个用于前端开发的开源工具包。它由Twitter的设计师Mark Otto和Jacob Thornton合作开发,是一个…

    Linux 2023年6月7日
    0111
  • SSM 集成 Freemarker 模板引擎

    在前后端分离的大趋势下,项目开发过程中,应尽量减少前端和后台的依赖和耦合,前端和后台尽可能采用 ajax 进行交互;但是全站 ajax,不利于网站 SEO,所以引入模板引擎,尽量减…

    Linux 2023年6月14日
    096
  • [20210930]bbed读取数据块7 fffext.sh.txt

    [20210930]bbed读取数据块7 fffext.sh.txt –//一般bash shell脚本很少考虑执行效率,仅仅考虑利用它快速解决工作中遇到的问题. &#…

    Linux 2023年6月13日
    089
  • Ubuntu 20.04 双系统安装完整教程

    1、查看电脑的信息 1.1 查看BIOS模式 “win+r”快捷键进入”运行”,输入”msinfo32″回车…

    Linux 2023年6月7日
    0102
  • Web前端基础精品入门(HTML+CSS+JavaScript+JS)[爱前端]听课笔记2:导航条的制作——css学习仿作马蜂窝

    马蜂窝的首页是非常正能量,青春的网页,首页非常大气 logo在上一篇我们已经制作好,现在我们开始制作导航条 这个导航条字数不等,宽窄不一致,就是所有的li不一样宽,字多就宽,字少就…

    Linux 2023年6月14日
    083
  • 设计模式——创建型设计模式

    创建型设计模式 争对 对象/类创建时的优化 工厂方法模式(了解) 通过定义顶层抽象工厂类,通过继承的方式,针对于每…

    Linux 2023年6月7日
    0100
  • 关于 Promise 的一些简单理解

    一、ES6 中的 Promise 1、JS 如何解决 异步问题? (1)什么是 同步、异步?同步指的是 需要等待 前一个处理 完成,才会进行 下一个处理。异步指的是 不需要等待 前…

    Linux 2023年6月11日
    0117
  • [Python]批量替换PPT字体脚本

    使用说明 脚本代码 配置文件 使用说明 将脚本放置在需要批量修改的PPT文件夹根目录 修改配置文件 conf.ini 中的字体 执行脚本文件 ​ exe文件 下载:https://…

    Linux 2023年6月13日
    0119
  • IDEA 无法显示 Run Dashboard 的解决方法

    前言 最近开始接触微服务的项目,项目很多有时候本地调测需要启动多个项目,看到同事都是使用dashboard管理项目,服务和端口排列的整整齐齐。但是我dashboard里面啥都没有,…

    Linux 2023年6月14日
    0122
  • MySQL 知识点总结(简易版)

    MySQL 总结(简易版) 基本语法 0. 1基本语法 登录MySQL $ mysql -u root -p12345612 &…

    Linux 2023年6月7日
    0106
  • 项目的部署和环境搭建

    项目的部署和环境搭建 cd /opt (一般项目部署的文件代码都放在/opt目录下) 3.进入项目跟目录下的docker目录: cd crm _pro/docker 4.执行doc…

    Linux 2023年6月7日
    096
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球