mysql的索引类型与数据存储

本文详细解释了MySQL中的索引概念,包括B+Tree和Hash索引结构,以及主键索引、唯一索引、普通索引和覆盖索引的创建方法。同时讨论了InnoDB和MyISAM存储引擎对索引的不同处理方式,以及全文索引在全文搜索中的应用。
摘要由CSDN通过智能技术生成
mysql索引与类型
什么是索引?

索引(Index)是帮助MySQL高效获取数据的数据结构。我们可以简单理解为:快速查找排好序的一种数据结构。Mysql索引主要有两种结构:B+Tree索引和Hash索引。我们平常所说的索引,如果没有特别指明,一般都是B树结构组织的索引(B+Tree索引)。

索引类型:
索引名称描述
主键索引它是一种特殊的唯一索引,不允许有空值。一般是在建表的时候指定了主键,就会创建主键索引
唯一索引与普通索引类似,不同的是:索引列的值必须唯一,但是允许为空值。如果是组合索引,则列值的组合必须唯一
单索引单个字段建立索引
联合索引多个字段建立的索引,与单索引可统称为普通索引
全文索引FULLTEXT索引用于全文搜索。只有InnoDB和MyISAM存储引擎支持FULLTEXT索引和仅适用于CHAR,VARCHAR和TEXT列。
覆盖索引只需要在一棵索引树上就能获取SQL所需的所有列数据,无需回表,速度更快。

innoDB不支持hash索引。

主键索引:

创建主键索引语法:

ALTER TABLE"表名" ADD PRIMARY KEY (字段);

例子:

alter table user add primary key (id);

唯一索引:

创建唯一索引语法:

CREATE UNIQUE INDEX 索引名 ON 表名字段名

例子:

create unique index idx_email on user(email);

普通索引:

创建普通索引语法:

ALTER TABLE 表名 ADD INDEX 索引名(字段

例子:

alter table user add index idx_name(name); --单索引

alter table user ADD index idx_age_sex(age,sex); --联合索引

覆盖索引与全文索引

什么是覆盖索引:

mysql官网表达意思:

只需要在一棵索引树上就能获取SQL所需的所有列数据,无需回表,速度更快。

概念:

索引覆盖:是通过普通索引查询的时候,不需要回表查询,直接可以获取到对应的数据

 

全文搜索索引:

全文索引(也称全文检索)是目前搜索引擎使用的一种关键技术。它能够利用分词技术等多种算法智能分析出文本文字中关键字词的频繁以及重要性,然后按照一定的算法规则智能地筛选出我们想要的搜索结果。

根据名称创建全文索引:

alter table `user` add FULLTEXT index namefulltext(`name`) WITH parser ngram;
select * from `user` where match(`name`) against('化');

全文搜索索引:

idtitlecontent
1php书籍变量基础语法字符串数组面向对象核心扩展等
2mysql书籍索引事务单表多表查询集群主从分库分表
3redis书籍字符串类型队列有序集合zset类型还有stream类型
4laravel书籍控制器模型数据库数组视图事件队列
5nginx书籍高可用负载均衡反向代理配置解析
6swoole书籍swoole的http服务,tcp定时器
7thinkphp书籍控制器模型数据库数组视图事件队列

全文搜索尽量使用搜索引擎

搜索引擎:es => 大型网站

轻量级搜索引擎:Sphinx =>开销比较小

mysql索引与数据存储的区别:

myisam存储引擎索引:

MYD

MYI

一个存储数据 一个存储索引:分开进行存储。

innodb存储引擎索引:

.ibd => 索引与数据存储 在一个文件中

ascii a 97 b 98

A 65 B 66

总结:

myisam:myisam存储 引擎的普通索引与主键索引在索引指向方面都是指定位实际的数据在磁盘中的位置。

innodb:innodb存储引擎的普通索引与主键索引在索引指定当面是普通索引指定主键索引的数据以及索引相关字段数据在磁盘中的位置,主键索引指向的是数据在磁盘中实际的位置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值