当前位置:网站首页>MySql之索引
MySql之索引
2022-08-05 05:13:00 【来一杯奶喵】
文章目录
前言
MySql中的索引可以很大程度的提高MySql的检索效率,提高MySql的运行效率,可以确保所查数据的唯一性。因此学习索引也是十分重要的。下面我带大家稍微了解一下MySql中的索引。
一、索引是什么?
索引是对数据库表中一列或多列的值进行排序的一种结构。使用索引可以快速访问数据库表中的特定信息。
二、常见的索引种类
1.普通索引
这是最基本的索引,它没有任何限制。
代码如下:
create table 表名(
字段1 int(11) not null,
index/key(字段1)
)
--或者
create index 索引名 on 表名 (字段名)2.唯一索引
不允许有索引值相同的行,从而禁止重复的索引或键值。
代码如下:
create table 表名(
字段名 int(11) not null unique,
#或 unique key(字段名)
)
--或
create unique index 索引名 on 表名 (字段名)3.主键索引
在数据库关系中为表定义一个主键将自动创建主键索引。一个表只能有一个主键,不允许有空值。
代码如下:
create table 表名(
字段名 int(11) auto_increment primary key,
#或 primary key(字段名)
)4.组合索引
在多个字段上创建的索引,只有在查询条件中使用了创建索引时的第一个字段,索引才会被使用。使用组合索引时遵循最左前缀匹配原则。
最左前缀匹配原则(比如创建了多列索引(stu_name,stu_age,stu_sex)会优先匹配stu_name字段,再到age,sex中间不能跳过,遇到范围查询就会停止匹配)。
代码如下:
create table 表名(
字段名1 int(11) not null,
字段名2 varchar(10) not null,
index(字段名1,字段名2)
)5. 全文索引
搜索引擎的关键技术,用于检索文本信息,可以是词语或者段落。
注意:
- 只有char/varchar/text类型的字段能够创建全文索引。
- 当写入大量数据时,先写入数据再创建全文索引,提高效率。
- MySql内置ngram解析器,可解析中日韩文字,有汉字时要启用。
代码如下:
create table 表名(
字段名 varchar(32) not null,
fulltext key(字段名,字段名,字段名)with parser ngram
)ENGINE=innodb三、关于索引失效的情况
- 使用%XXX左模糊(like)查询
- 组合索引,不满足最左原则时
- 使用索引比全表扫描还慢时,不要使用索引
- 用or分割条件,or前后只要有一个列没有索引,就不会使用索引
- 使用!=或<>操作符时
- 对文字进行null值判断时
- 索引列带有运算时
总结
- 索引是对数据库表中一列或多列的值进行排序的一种结构。
- 索引分为:普通索引、主键索引、唯一索引、组合索引、全文索引。
- 索引失效情况:%开头模糊查询、不满足最左原则、or、!=或<>、null值判断、运算、索引慢
希望以上的内容对看到这篇文章的你有所帮助。
边栏推荐
猜你喜欢

Pandas(五)—— 分类数据、读取数据库

将照片形式的纸质公章转化为电子公章(不需要下载ps)

Basic properties of binary tree + oj problem analysis

Using pip to install third-party libraries in Pycharm fails to install: "Non-zero exit code (2)" solution

多线程查询结果,添加List集合

位运算符与逻辑运算符的区别

第5讲 使用pytorch实现线性回归

【MySQL】数据库多表链接的查询方式

【过一下9】卷积

【过一下3】卷积&图像噪音&边缘&纹理
随机推荐
redis复制机制
学习总结day5
Lecture 4 Backpropagation Essays
HQL statement execution process
The fourth back propagation back propagation
【过一下11】随机森林和特征工程
【Untitled】
el-pagination分页分页设置
第5讲 使用pytorch实现线性回归
ES6基础语法
A blog clears the Redis technology stack
SQL(一) —— 增删改查
Community Sharing|Tencent Overseas Games builds game security operation capabilities based on JumpServer
Geek卸载工具
2022杭电多校第一场01
学习总结week2_2
npm搭建本地服务器,直接运行build后的目录
coppercam入门手册[6]
The mall background management system based on Web design and implementation
day6-列表作业