索引介绍和基本使用

这篇具有很好参考价值的文章主要介绍了索引介绍和基本使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

介绍

索引就是用来加速SQL查询的

由于索引也是需要存储成索引文件的,因此对索引的使用也会涉及磁盘I/O操作。如果索引创建过多,使用不当,会造成SQL查询时,进行大量无用的磁盘I/O操作,降低了SQL的查询效率,适得其反。

分类

索引是创建在上的,是对数据库表中一列或者多列的值进行排序的一种结果。索引的核心是提高查询的速度!

物理上(聚集(聚簇)索引&非聚集索引)/逻辑上(…)

1、**普通(二级)**索引:没有任何限制条件,可以给任何类型的字段创建普通索引(创建新表&已创建表,数量是不限的,一张表的一次sql查询只能用一个索引

2、唯一性索引:使用UNIQUE修饰的字段,值不能够重复,主键索引就隶属于唯一性索引

3、主键索引:使用Primary Key修饰的字段会自动创建索引(MyISAM, InnoDB)

4、单列索引:在一个字段上创建索引

5、多列索引:在表的多个字段上创建索引 (uid+cid,多列索引必须使用到第一个列,才能用到多列索引,否则索引用不上)

6、全文索引:使用FULLTEXT参数可以设置全文索引,只支持CHARVARCHARTEXT类型的字段上,常用于数据量较大的字符串类型上,可以提高查询速度(线上项目支持专门的搜索功能,给后台服务器增加专门的搜索引擎支持快速高效的搜索 elasticsearch 简称es 以及 C++开源的搜索引擎 搜狗的workflow)

例子1

在 student 表上 name列创建一个名为 nameidx的 索引:

create index nameidx on student(name);

查看表信息

索引介绍和基本使用

查询时就用到索引了

索引介绍和基本使用

删除 t_user表中 名为 pwdidx 的索引:

drop index pwdidx on t_user;

相关要点

  • 可以给经常作为过滤条件的字段加索引;

  • 字符串列创建索引时,尽量规定索引长度,而不能让索引长度key_len过长;

  • 索引字段涉及类型强转,函数调用,表达式计算时,索引失效,即:

索引介绍和基本使用

索引介绍和基本使用

没发生强转就用到了索引:

索引介绍和基本使用

例子3:select * 回表问题

当建立某列的普通(二级)索引树的时其会存储对应的主键列,查询索引列和主键列直接在二级索引树获取(InnoDB才可以),如果查询其他列数据则需要拿着主键列去回表查询:

索引介绍和基本使用

Using index代表直接二级索引树上获得数据,而NULL代表发生了回表扫描。

如果要使用对多个列进行查询,也可以试图采用联合(多列)索引:

create index age_name_id on student(age,name);
explain select * from student where age = 20 order by name;

索引介绍和基本使用

但是多列索引第一列必须要匹配,否则第二列用不上,例如:

索引介绍和基本使用文章来源地址https://www.toymoban.com/news/detail-483380.html

到了这里,关于索引介绍和基本使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 金字塔的思维--思考的第一步就是先提炼出一个基本框架

            如果以哲学的眼光来看待这一切,那么可以说每一件事情都包含在其他事物之间,包括我们的社会体系,包括整个自然界,万事万物都处于某一特定的体系当中。一辆行驶的汽车,一匹奔跑的骏马,一栋建筑,一个面包,你、我、他,所有的一切都从属于某一个大的

    2024年02月08日
    浏览(35)
  • valgrind基本功能介绍、基础使用方法说明 valgrind基本功能介绍、基础使用方法说明

    valgrind基本功能介绍、基础使用方法说明_valgrind使用方法_HNU Latecomer的博客-CSDN博客 拷贝效果不好,请看原文。 1、Valgrind概述 Valgrind是一套Linux下,开放源代码(GPL V2)的仿真调试工具的集合。 Valgrind由内核(core)以及基于内核的其他调试工具组成。内核类似于一个框架(f

    2024年02月07日
    浏览(50)
  • 【JavaEE】Spring事务-事务的基本介绍-事务的实现-@Transactional基本介绍和使用

    【JavaEE】Spring 事务(1) 比如跟钱相关的两个操作: 第一步操作:小马卡里 - 100元 第二步操作:老马卡里 + 100元 这就是一个事务,捆在一起的一组行为,就是事务 而它能保证的是,这个行为的原子性,一致性,隔离性,持久性: 两个操作都成功 两个操作都失败 要么一起成

    2024年02月11日
    浏览(31)
  • Burpsuite的基本使用介绍

    intercept介绍 Forward表示将截断的HTTP或HTTPS请求发送到服务器。 Drop表示把截断的HTTP或HTTPS请求丢弃。 Intercept is on 和Intercept is off 表示开启或关闭代理截断功能。 Action表示将截断的HTTP或HTTPS请求发送到其他模块或做其他处理。 对Intercept进行Raw Hex Params Header切换查看不同的数据格

    2024年02月11日
    浏览(26)
  • ddddocr基本使用和介绍

    在使用爬虫登录网站的时候,经常输入用户名和密码后会遇到验证码,这时候就需要用到今天给大家介绍的python第三方库ddddocr,ddddocr是一款强大的通用开源ocr识别库,具有高效、准确、易用的特点,广泛应用于图像处理和文字识别任务。本文将为大家介绍ddddocr的基本使用方

    2024年04月22日
    浏览(18)
  • Viobot基本功能使用及介绍

    设备拿到手当然是要先试一下效果的,这部分可以参考本专栏的第一篇 Viobot开机指南。 接下来我们就从UI开始熟悉这个产品吧!   1.状态         设备上电会自动运行它的程序,开启了一个服务器,上位机通过连接这个服务器连接到设备,连接成功后就如上图所示,状态

    2024年02月11日
    浏览(27)
  • Git的介绍以及基本使用

    学生作者:吃饱饱坏蜀黍 日期:2023.6.17 GIt版本:2.41.0 IDEA配置Git篇:https://blog.csdn.net/a1978341673/article/details/131318939 ​ Git 是一个分布式版本控制工具,通常用来对软件开发过程中的源代码文件进行管理。通过Git 仓库来存储和管理这些文件,Git 仓库分为两种: 本地仓库:开发人

    2024年02月04日
    浏览(28)
  • Gorm 入门介绍与基本使用

    目录 Gorm 入门介绍与基本使用 一、ORM简介 1.1 什么是ORM 1.2 使用ORM的好处 1.2.1 避免直接操作SQL语句 1.2.2 提高代码的可维护性 1.2.3 跨数据库兼容性 1.3 使用ORM的缺点 1.3.1 学习成本 1.3.2 性能开销 1.4 ORM解析过程 1.4.1 模型定义 1.4.2 数据验证 1.4.3 映射关系 1.4.4 CRUD操作 1.4.5 SQL生成

    2024年02月03日
    浏览(27)
  • iframe的基本介绍与使用

    iframe (内嵌框架)是 HTML 中一种用于将一个网页嵌入到另一个网页中的标签,它可以在一个页面中显示来自其他页面的内容。在网页中,使用 iframe 标签可以将一个网页嵌套在另一个网页中,实现网页间的互联互通。 iframe 标签的基本用法如下: 属性 描述 allow 允许特定功能

    2024年02月01日
    浏览(23)
  • YAML基本介绍和使用语法

    YAML是一种计算机数据序列化语言。(YAML is a computer data serialization language.)YAML is a human friendly data serialization standard for all programming languages(YAML是一个对所有编程语言都很友好的数据序列化标准),可以用于多种编程语言。因其良好的跨语言、跨平台、易于理解、格式简单而

    2024年02月10日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包