mysql常建引擎_Mysql-索引和执行计划

索引

平衡二叉树示意图。

d2820f469842cce052f47e9d47291193.png

聚簇索引

辅助索引

单列索引

联合索引:i ndex(a,b,c) 查询条件一定要带a才能走索引(最左列)

前缀索引

由于索引列,字符太长,占用空间太大,索引树高度增高。

查询时需要检索更多的索引也。

Mysql中建议3,4层。

所以可以选择大字段的前部分作索引。

2.数据库行过多

1.索引字段较长,前缀索引。

2.数据行过多:分区表,归档表(pt-archive),分布式架构。

3.数据类型;选择合适的数据类型。

索引管理

索引常建在 where ,group by ,order by,join on ...的条件。

查询索引

desc tbxx;

Key:

PRI 聚簇索引

MUL 辅助索引

UNI 唯一索引

查询索引详细信息。

show index from User;

建立索引

alter table User add index idx_pd(pwd);

联合索引

alter table User add index idx_pd(a,b);

前缀索引,(前5个字符组成索引)

alter table User add index idx_pd(district(5));

删除索引

alter table User drop index idx_pd;

执行计划

在查询语句前加desc或explain可查看执行计划、

7abcec787feabfdaaa3653cfb04d382d.png

table :此次语句涉及的表

type : 查询类型,全表扫,索引扫

全表扫描:ALL

索引扫描:index < rang < ref < eq_ref < const(system)

index:全索引扫描,扫整个索引树。

range:索引范围查询 <> like in or between and

ref:辅助索引的等值查询

eq_ref:多表链接中,非驱动表链接条件为主键和唯一索引

const[system]:聚簇索引等值查询。

possible_keys:可能用到的索引

key : 最后选择的索引

key_len : 联合索引,索引覆盖长度

index(a,b,c),覆盖越多越好。

where a=1 and b=2 and c=3 key_len = a长度+b长度+c长度

长度:列的最大储值字节长度。

数字 :

​ not null null

tinyint 1 1+1

int 4 4+1

bigint 8 8+1

字符 utf-8 一个字符最大占3个字符

​not null null

char(10) 3x10 3x10+1

varchar(10) 3x10+2 3x10+2+1

rows : 此次查询需要扫描的行数

Extra :额外的信息

using filesort:表示此次查询使用到了文件排序。

order by ,group by ,distinct

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值