第七章《索引》

第七章《索引》

1.mysql默认的查询方式是遍历整个表:
什么是索引:索引记录的是数据的的存储位置,他是一种特殊的数据结构,索引可以提高查询的效率,
他是独立于数据表之外的

MyISAM、InnoDB支持btree和b+tree索引,Memory支持btree和hash索引,每一个表至少
可以添加16个索引,总的索引长度至少256字节;

常用的索引类型
1.主键索引
2.唯一索引和普通索引
3.单列索引和组合索引
4.全文索引
5.空间索引

主键和唯一索引;不但可以提高查询效率,还对索引字段的值进行条件限制,unique唯一索引字段的值必须具有唯一性,primary key 主键索引字段的值是唯一且非空
其他的索引作用是提高查询效率
创建索引的语法;
1.在创建表的时候添加索引:
CREATE TABLE 表名 [字段名 数据类型] [ unique 唯一索引] [fulltext 全文索引] [spatial 空间索引] INDEX|KEY [索引名] 索引字段(length) [ASC|DESC]
2.给已经创建好的表添加索引;
(1)ALTER TABLE 表名 ADD[ unique 唯一索引] [fulltext 全文索引] [spatial 空间索引] INDEX|KEY [索引名 )] 索引字段 (length)[ASC|DESC]
(2)CREATE INDEX [ unique 唯一索引] [fulltext 全文索引] [spatial 空间索引] INDEX|KEY [索引名 ] ON 表名(索引字段);

创建普通索引普通索引是最基础的索引类型,没有唯一性限制,作用是只加快对数据的访问速度
在这里插入图片描述
查看索引

在这里插入图片描述
创建唯一索引唯一索引主要作用是减少查询索弓|列操作的执行时间,而且还对该列的值进行唯一性限制,但允许有空值。
在这里插入图片描述
单列索引;
普通索引包含单列和组合索引;单列索引就是给数据表中的某一列添加索引,一张表中可以添加多个单列索引;
在这里插入图片描述
组合索引:
是在多个字段上创建一个索引,遵循最左前缀原则。比如现在有一个组合索引(id,name,age),实际作用相当于添加了三个索引:
(id), (id,name),(id,name,age)
在这里插入图片描述
全文索引:
FULLTEXT 只有myisam引擎支持全文索引,并且只为并且只为char/varchar/text列添加。索引总是对整个列进行,不支持局部索引,适合大型数据表的创建
在这里插入图片描述
空间索引(spatial)
只有myisam引擎支持空间索引

在这里插入图片描述
在这里插入图片描述
在已经存在的表上创建索引;
ALTER TABLE 表名 ADD [UNIQUE|FULLTEXT|SPATIAL] INDEX [索引名] 索引字段(length);
CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX 索引名 ON 表名(索引字段);
在这里插入图片描述
在这里插入图片描述
见证查询有没有用到索引:explain的用法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
删除索引:
ALTER TABLE DROP INDEX 索引名;
在这里插入图片描述
2.drop index 索引名 on 表名;

创建索引的规则;
(1)创建索引并非越多越好;
(2)数据量小的表最好不要创建索引;
(3)避免对经常更新的数据创建索引;
(4)在条件表达式中经常用到的不同值较多的列创建索引(where子句中常用的字段);
(5)当唯一性是某种数据本身的特征时,我们创建唯一索引;
(6)主键本身就是索引;
(7)在频繁进行排序或分组的列上建立索引;如果排序的列有多个还可以创建组合索引

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/101971.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 2×3卡方检验prism_SPSS之卡方检验

    2×3卡方检验prism_SPSS之卡方检验点击蓝字关注我们在介绍卡方检验之前,我们先了解一下非参数检验:非参数检验是指在母体不服从正态分布或分布情况不明确时,即不依赖母体分布的类型,用以检验数据是否来自同一个母体假设的一类检验方法,又称分布自由检验。那么什么是卡方检验呢?01卡方检验的定义卡方检验是一种极为典型的对总体分布进行检验的非参数检验方法。用于检验数据是否与某种概率分布的理论数字相吻合,进而推断样本数据是否来自该分布的…

  • 大数据开发是干什么的(大数据开发是做什么的)

    据数联寻英发布《大数据人才报告》显示,目前全国的大数据人才仅46万,未来3-5年内大数据人才的缺口将高达150万,越来越多人加入到大数据培训,都希望在大数据培训机构中学习最前沿的知识,找一份不错的工作。大数据开发工程师主要负责的工作有以下内容:1.负责公司大数据平台的开发和维护,负责大数据平台持续集成相关工具平台的架构设计与产品开发等工作;2.主要从事网络日志的大数据分析工作,包括…

  • 纸张与什么是使用喷墨打印机所需的消耗品(打印机打印出来的纸黑乎乎的)

    【PConline杂谈】一直潜心研究打印机的小编,由于长时间周旋于各种打印机,甚是无聊。因此近日研究了点特别的东西。关于打印机耗材方面,一般都是硒鼓、墨盒等。对于打印机要用量最大的纸张耗材,却鲜有人关注。于是,小编就趁着元旦假期去恶补了下相关知识。对于常用的纸张耗材,给人的感觉却是熟悉而又陌生的。因此,因此这篇文章就谈一谈关于纸的知识。纸,四大古代发明之一,在人们的日常生活中发挥着及其重要的作用…

  • 免费申请国外免费域名超详细教程

    免费申请国外免费域名超详细教程1.首先申请免费域名网站:https://my.freenom.com/domains.php2.填入域名,这里我们以xcflag为列(尽量选择复杂一点的或者五个字母以上的域名,因为简单的有些域名是需要收费的),点击检查可用性。3.可以看到很多免费的域名(用的谷歌翻译插件,翻译有时候不是很准确,free翻译过来应该是免费而不是自由,之后会写一些关于谷歌插件的笔记,详细讲解)4.我们选择xcflag.tk点击立即获取,稍等一会点击购物车查看绿色按钮5.默认三个月试用,这里下拉框我们选择十二个月

  • 2021年 github被墙最新hosts-每日更新[通俗易懂]

    2021年 github被墙最新hosts-每日更新[通俗易懂]2021年github被墙最新hosts-每日更新解决方法参考链接:http://blog.yoqi.me/lyq/16489.html

  • pycharm python安装教程_python环境安装教程

    pycharm python安装教程_python环境安装教程首先我们来安装python1、首先进入网站下载:点击打开链接(或自己输入网址https://www.python.org/downloads/),进入之后如下图,选择图中红色圈中区域进行下载。2、下载完成后如下图所示3、双击exe文件进行安装,如下图,并按照圈中区域进行设置,切记要勾选打钩的框,然后再点击Customizeinstallation进入到下一步:4、对于上图中,可以通过Browse…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号