Mysql中 索引失效的N种场景

Mysql中 索引失效的N种场景:

索引失效的情况:

​        1、组合索引不遵循最左匹配原则。

​        2、组合索引的前面索引列使用范围查询(<,>,like),会导致后续的索引失效。

​        3、不要在索引上做任何操作(计算,函数,类型转换)。

​        4、is null和is not null无法使用索引。

​        5、尽量少使用or操作符,否则连接时索引会失效。

​        6、字符串不添加引号会导致索引失效。

​        7、两表关联使用的条件字段中字段的长度、编码不一致会导致索引失效。

​        8、like语句中,以%开头的模糊查询。

​        9、如果mysql中使用全表扫描比使用索引快,也会导致索引失效。

Mysql底层是由C和C++编写的关系型数据库管理系统。 ACID是指数据库事务应该具备的四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。 隔离级别是指在多个事务同时访问数据库时,数据库管理系统为了防止事务间产生不可预知的结果,采用的一机制。常见的隔离级别有:读未提交(Read Uncommitted)、读提交(Read Committed)、可重复读(Repeatable Read)和串行化(Serializable)。 索引失效场景主要有:模糊查询、使用了函数或表达式、数据类型不同、使用了不等于号、隐式转换等。 聚簇索引是一特殊的索引方式,它将数据行存储在同一个页面,按照聚簇索引排序的顺序存储。聚簇索引可以提高查询效率,但是在插入、删除等操作时的开销较大。 B树是一常见的数据结构,它可以在对数时间内执行插入、删除和查找操作。B树在数据库被广泛应用,可以用于索引、排序等操作。B树在插入、删除和查找操作时的时间复杂度都是O(log n),因此它可以在大规模数据存储和查询场景发挥重要的作用。 建索引不如不建索引的场景包括:数据表的数据量较小、频繁进行更新和插入操作、建立索引会占用过多的磁盘空间等。在这些情况下,建立索引可能会影响数据库性能,不建立索引反而更加高效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寅灯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值