首页 > 数据库 >MySQL索引

MySQL索引

时间:2023-04-04 23:23:19浏览次数:30  
标签:-- 分类 索引 MySQL 允许 NULL 主键

一、索引的概念

定义:索引是对数据库表中一列或多列的值进行排序的一种结构,索引可以提高检索效率。数据库像书籍,索引就如目录。

优点:索引可以减少服务器需要扫描的数据量,从而加快检索速度;索引可以帮助服务器避免排序(order by)和创建临时表(join)

缺点:创建和维护索引需要耗费时间;索引需要占据物理空间;增删改需要动态维护

应用:经常搜索的列;主键列;用于连接的列(外链);根据范围(<,<=,=,>,>=,BETWEEN,IN)进行搜索的列;order by;where

二、索引的分类

逻辑分类与物理分类

1、逻辑分类:按功能分:主键索引--不允许重复、不允许NULL ,ALTER TABLE TableName ADD PRIMARY KEY(column_list);

                                  唯一索引--数据列不允许重复、允许NULL ,CREATE UNIQUE INDEX IndexName ON `TableName`(`字段名`(length));

                                  普通索引--可包含多个字段,允许数据重复,允许 NULL 值插入;

                   按列数分:单例索引--一个索引只包含一个列,一个表可以有多个单例索引;

                                  组合索引--一个组合索引包含两个或两个以上的列。查询是遵循“最左前缀”原则;

2、物理分类:聚簇索引

 

标签:--,分类,索引,MySQL,允许,NULL,主键
From: https://www.cnblogs.com/cxuep/p/17288241.html

相关文章

  • 力扣615(MySQL)-平均工资:部门与公司比较(困难)
    题目:给如下两个表,写一个查询语句,求出在每一个工资发放日,每个部门的平均工资与公司的平均工资的比较结果(高/低/相同)。表:salary employee_id字段是表employee中employee_id字段的外键。 对于如上样例数据,结果为:解释在三月,公司的平均工资是(9000+6000+10000)/......
  • 【MySQL】MySQL番外01 — MySQL单表多字段模糊查询解决方法
    MySQL单表多字段模糊查询解决方法背景:在项目中经常遇到查询接口需要实现单表中对多字段进行多个关键字的模糊查询,但这个关键字并不一定只存在于某个字段。例如现有一张employees表,其中有last_name,first_name两个字段,分别记录一条用户的姓和名。根据用户输入的查询请求,在这两个......
  • 力扣614(MySQL)-二级关注者(中等)
    题目:在facebook中,表follow会有2个字段:followee,follower,分别表示被关注者和关注者。请写一个sql查询语句,对每一个关注者,查询关注他的关注者的数目。比方说: 应该输出: 解释:B和D都在在follower字段中出现,作为被关注者,B被C和D关注,D被E关注。A不在......
  • mysql数据库安装
    参考连接1、超级详细的mysql数据库安装指南2、MySQL安装过程中,出现CheckRequirements缺少C++动态库即MicrosoftVisualC++2013Redistributable问题二、安装步骤(基本和第一个参考链接相同,下面是差异的地方)1、检查安装要求,不可以点击Next,点击Execute会出现错误。提示没有......
  • 【MySQL】MySQL基础03 — SQL学习 — DQL — 条件查询
    SQL学习—DQL—条件查询DQL语言学习数据查询语言(DataQueryLanguage),关键字select使用DQL前,先输入USE库名;2.条件查询语法:select`查询列表`from表名where筛选条件;分类:/*分类: 一、按条件表达式筛选 条件运算符:><=!=(<>)>=<= 二、按......
  • 【MySQL】MySQL基础 — SQL学习 — DQL — 基础查询
    SQL学习—DQL—基础查询DQL语言学习数据查询语言(DataQueryLanguage),关键字select使用DQL前,先输入USE库名;1.基础查询1.1查询字段#基础查询/*语法:select`查询列表`from表名;#`查询列表`,`着重号表明是字段,可加可不加,当关键字和字段名重叠,用`着重号区......
  • Qt6编译MySQL驱动最简单方法
    最近qt发布最新lts版本qt6.5,就想下来试试新功能。qt版本6.5.0,安装目录E:\Qt\6.5.0mysql版本8.0,安装目录C:\MySQL_Server_8.0,或者直接下连接器解压也可以:MySQL::DownloadMySQLConnector/C(ArchivedVersions)需要额外安装qt的sources源组件,忘了也没关系,在cmd下进入包含Main......
  • 分布式搜索引擎Elasticsearch的架构分析
    一、写在前面 ES(Elasticsearch下文统一称为ES)越来越多的企业在业务场景是使用ES存储自己的非结构化数据,例如电商业务实现商品站内搜索,数据指标分析,日志分析等,ES作为传统关系型数据库的补充,提供了关系型数据库不具备的一些能力。ES最先进入大众视野的是其能够实现全文搜索的能力,也......
  • 搜索引擎关键词采集,联系任务采集,网址采集
    使用搜索引擎进行关键词的采集,可以让我们获得更多的信息并准确地找到我们所需要的内容。通过使用搜索引擎,我们可以快速搜索全球各地的网页、文章、资料以及其他文档。除此之外,搜索引擎还提供与主题相关的相关性排序,这样可以更快速有效地了解当前所要访问的内容。在工作场景下,使用......
  • MYSQL-Explain详解
    --实际SQL,查找用户名为Jefabc的员工select*fromempwherename='Jefabc';--查看SQL是否使用索引,前面加上explain即可explainselect*fromempwherename='Jefabc';expain出来的信息有10列,分别是id、select_type、table、type、possible_keys、key、key_len、ref......