MySQL

61-MySQL索引优化与查询优化-字符串前缀索引

2022-11-04  本文已影响0人  紫荆秋雪_文

一、准备数据

CREATE TABLE teacher
(
    id    BIGINT UNSIGNED PRIMARY KEY,
    email VARCHAR(64)
);
DESC
SELECT *
FROM teacher
WHERE email = 'raven1991@qq.com';

二、前缀索引

MySQL是支持前缀索引的。默认地,如果你创建索引的语句不指定前缀长度,那么索引就会包含整个字符串

#  整个字符串添加索引
ALTER TABLE teacher
    ADD INDEX index1 (email);

#  email字符串前6个字符添加索引
ALTER TABLE teacher
    ADD INDEX index2 (email(6));

2.1、这两种不同的定义在数据结构和存储上有什么区别呢?

index1.png index2.png

2.2、使用index1(即email整个字符串的索引结构),执行顺序是这样的

2.3、如果使用的是index2(即email(6)索引结构),执行顺序是这样的

上一篇 下一篇

猜你喜欢

热点阅读