mysql 枚举索引_mysql索引笔记

本文详细介绍了MySQL中的索引类型,包括聚集索引和非聚集索引,并提供了优化查询的建议,如避免全表扫描,谨慎使用!=、<>操作符,避免在索引列上使用计算和函数,以及合理选用数据类型。此外,还强调了使用EXISTS替代IN,避免SELECT *等优化策略。
摘要由CSDN通过智能技术生成

mysql索引

众所周知,索引是关系型数据库中给数据库表中一列或多列的值排序后的存储结构,SQL的主流索引结构有B+树以及Hash结构,聚集索引以及非聚集索引用的是B+树索引。

聚集索引

非聚集索引

该索引中索引的逻辑顺序与磁盘上行的物理存储顺序不同,一个表中可以拥有多个非聚集索引。

分成普通索引,唯一索引,全文索引。

索引结构

BTree索引

Hash索引

full-text全文索引

R-Tree索引

避免全表扫描的方法

1.在 where 及 order by 涉及的列上建立索引。

2.避免在where子句中对字段进行null值判断,否则将导致引擎放弃使用索引而进行全表扫描。如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id from t where num=0。

3.应尽量避免在 where 子句中使用!=或<>操作符,否则引擎将放弃使用索引而进行全表扫描。

4.应尽量避免在 where 子句中使用or来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num=10 or num=20可以这样查询:select id from t where num=10 union all select id from t where num=20

5.in 和 not in 也要慎用,否则会导致全表扫描。如:select id from

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值