二十三、索引的基本使用

简介: 二十三、索引的基本使用

一、什么是索引

索引时一种特殊的数据结构,类似于图书的目录,它能够极大地提升数据库的查询效率。如果没有索引,在查询数据时必须扫描表中的所有记录才能找出符合条件的记录,这种全表扫描的查询效率非常低。


数据库的索引好比一本书的目录,能够加快数据库的查询速度;

索引是快速搜索的关键,如果不加索引,查找任何一条特定的数据都会进行一次全表扫描。

二、常见的索引种类

索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可以快速访问数据库表中的特定记录。

image.png

三、索引使用

1.创建索引

# 创建普通索引
CREATE INDEX indexName ON tableName(columnName(length))
# 创建唯一索引
CREATE UNIQUE INDEX indexName ON tableName(columnName(length))
# 创建复合索引
CREATE INDEX indexName ON tableName(columnName1,columnName2,...)

2.删除索引

DROP INDEX [indexName] ON tableName;

3. 查看索引

SHOW INDEX FROM tableName

四、实战经验

  1. 选择区分度高的列建立索引,区分度计算公式:count(distinct col)/count(*),区分度表示字段内容不重复的比例;
  2. 每次查询每张表仅能使用一个索引;
  3. 避免对索引列进行计算
目录
相关文章
|
8月前
|
存储 Java 应用服务中间件
Session基本使用及原理和使用细节
Session基本使用及原理和使用细节
191 0
|
2月前
|
SQL 缓存 Java
【详细实用のMyBatis教程】获取参数值和结果的各种情况、自定义映射、动态SQL、多级缓存、逆向工程、分页插件
本文详细介绍了MyBatis的各种常见用法MyBatis多级缓存、逆向工程、分页插件 包括获取参数值和结果的各种情况、自定义映射resultMap、动态SQL
【详细实用のMyBatis教程】获取参数值和结果的各种情况、自定义映射、动态SQL、多级缓存、逆向工程、分页插件
|
8月前
|
算法 Java 数据库连接
Spring+MySQL+数据结构+集合,Alibaba珍藏版mybatis手写文档
Spring+MySQL+数据结构+集合,Alibaba珍藏版mybatis手写文档
|
5月前
|
存储 C# 索引
C# 集合语法全解
C# 集合语法全解
43 0
|
SQL Oracle 关系型数据库
MySQL深入浅出:自增长序列(@i:=@i+1)的用处及用法
MySQL深入浅出:自增长序列(@i:=@i+1)的用处及用法
234 0
MySQL深入浅出:自增长序列(@i:=@i+1)的用处及用法
|
SQL Oracle Java
MyBatis-Plus 的妙用(总章节目录)
MyBatis-Plus 的妙用(总章节目录)
111 0
|
搜索推荐 Java 索引
【JavaSE】Java基础语法(二十三):递归与数组的高级操作
1. 递归 1.1 递归 递归的介绍 以编程的角度来看,递归指的是方法定义中调用方法本身的现象 把一个复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解 递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算
|
NoSQL 数据处理 Redis
细说一下RedisTemplate的使用方法(十二)
上篇文章中学习了操作Redis中Set数据类型的两个主要方法,分别是opsForSet方法和boundHashOps方法,这两个方法也是目前最为常用的操作Set数据类型的方法了。今天我们就要来看下一个Redis数据类型的操作方法了,也是这个系列的最后一篇文章了。
381 0
|
存储 SQL Ubuntu
【MySQL数据库笔记 - 进阶篇】(二)索引
【MySQL数据库笔记 - 进阶篇】(二)索引
167 0
|
SQL 设计模式 XML
面试官:MyBatis 插件有什么用途?说说底层原理?我竟然不会。。
面试官:MyBatis 插件有什么用途?说说底层原理?我竟然不会。。
409 0
面试官:MyBatis 插件有什么用途?说说底层原理?我竟然不会。。