mysql 中!= 到底走不走索引?

编程入门 行业动态 更新时间:2024-10-16 00:24:15

mysql 中!= 到底走<a href=https://www.elefans.com/category/jswz/34/1746473.html style=不走索引?"/>

mysql 中!= 到底走不走索引?

mysql 中!= 到底走不走索引?

       很多人疑惑!= 到底走不走索引, 这里可以肯定的说该操作是可以走索引的,但实际情况中都为啥都不走索引呢? 首先我们要知道走索引与数据量和数据趋势(cardinality)有很大的关系,如果表本身就上百条记录,那走索引和表扫描区别不大,甚至在存在书签跳转情况下还不如表扫描更有效率,这个时候可能是不走索引的,另外 !=操作后获取的结果集在总结果集中占据的比例也是关键因素,如果返回的结果集过大(大于20%),那么可能也不会走索引,而是选择更有效率的表扫描了。

我们来看看个例子:

CREATE TABLE `b` (`id` int(11) NOT NULL AUTO_INCREMENT,`age` bigint(20) DEFAULT 50,`name` varchar(50) DEFAULT NULL,PRIMARY KEY (`id`),KEY `name` (`name`)
) ENGINE=InnoDBinsert into b (name) values('a'),('b'),('c'),('d'),('e'),('f'),('g'),('h'),('i'); 
--多次执行
insert into b (name) 
select 'k' from b ;select name, count(*) 
from  b 
group by name 

explain
select * From b where name !='k';

explain
select * From b where name !='a';

很明显 我们从统计中看到 K的数值很大,所以我们!='k'的数据集才8条,在总数据中占比很小,可以很好的走索引,而如果将k替换成 a,则不会走索引,变成了全表扫描

MYSQL系列书籍

高可用mysql: =2651 (访问密码: 2651)

MySQL王者晋级之路.pdf: =2651 (访问密码: 2651)

MySQL技术内幕InnoDB存储引擎第2版.pdf: =2651 (访问密码: 2651)

MySQL技术内幕 第4版.pdf: =2651 (访问密码: 2651)

MySQL管理之道,性能调优,高可用与监控(第二版).pdf: =2651 (访问密码: 2651)

深入浅出MySQL数据库开发、优化与管理维护第2版.pdf: =2651 (访问密码: 2651)

高性能MySQL.第3版.Baron Schwartz.pdf: =2651 (访问密码: 2651)

MYSQL内核:INNODB存储引擎 卷1.pdf: =2651 (访问密码: 2651)

MySQL技术内幕InnoDB存储引擎第2版.pdf: =2651 (访问密码: 2651)

MySQLDBA修炼之道.pdf: =2651 (访问密码: 2651)

MySQL5.7从入门到精通.pdf: =2651 (访问密码: 2651)

高可用mysql.pdf: =2651 (访问密码: 2651)

HIVE电子书

Practical Hive.pdf: =2651 (访问密码: 2651)

Hive-Succinctly.pdf: =2651 (访问密码: 2651)

Apache Hive Essentials.pdf: =2651 (访问密码: 2651)

Apache Hive Cookbook.pdf: =2651 (访问密码: 2651)

hadoop电子书

Practical Hadoop Migration.pdf: =2651 (访问密码: 2651)

Hadoop实战-陆嘉恒(高清完整版).pdf: =2651 (访问密码: 2651)

Hadoop & Spark大数据开发实战.pdf: =2651 (访问密码: 2651)

Expert Hadoop Administration.pdf: =2651 (访问密码: 2651)

Big Data Forensics - Learning Hadoop Investigations.pdf: =2651 (访问密码: 2651)

python电子书

python学习手册.pdf: =2651 (访问密码: 2651)

Python基础教程-第3版.pdf: =2651 (访问密码: 2651)

Python编程:从入门到实践.pdf: =2651 (访问密码: 2651)

Python Projects for Beginners.pdf: =2651 (访问密码: 2651)

kafka电子书

Learning Apache Kafka, 2nd Edition.pdf: =2651 (访问密码: 2651)

Kafka权威指南.pdf: =2651 (访问密码: 2651)

Kafka in Action.pdf: =2651 (访问密码: 2651)

Apache Kafka实战.pdf: =2651 (访问密码: 2651)

Apache Kafka Cookbook.pdf: =2651 (访问密码: 2651)

spark电子书

Spark最佳实践.pdf: =2651 (访问密码: 2651)

数据算法--Hadoop-Spark大数据处理技巧.pdf: =2651 (访问密码: 2651)

Spark大数据分析实战.pdf: =2651 (访问密码: 2651)

Spark 2.0 for Beginners.pdf: =2651 (访问密码: 2651)

Pro Spark Streaming.pdf: =2651 (访问密码: 2651)

Spark in Action.pdf: =2651 (访问密码: 2651)

Learn PySpark.pdf: =2651 (访问密码: 2651)

Fast Data Processing with Spark.pdf: =2651 (访问密码: 2651)

Fast Data Processing with Spark, 2nd Edition.pdf: =2651 (访问密码: 2651)

OReilly.Learning.Spark.2015.1.pdf: =2651 (访问密码: 2651)

High Performance Spark.pdf: =2651 (访问密码: 2651)

Machine Learning with PySpark.pdf: =2651 (访问密码: 2651)

Spark for Python Developers.pdf: =2651 (访问密码: 2651)

Spark Cookbook.pdf: =2651 (访问密码: 2651)

Big Data Analytics with Spark.pdf: =2651 (访问密码: 2651)

PySpark SQL Recipes.pdf: =2651 (访问密码: 2651)

Advanced Analytics with Spark Patterns for Learning from Data at Scale .pdf: =2651 (访问密码: 2651)

OReilly.Advanced.Analytics.with.Spark.Patterns.for.Learning.from.Data.at.Scale.pdf: =2651 (访问密码: 2651)

Big Data Analytics Beyond Hadoop_ Real-Time Applications with Storm, Spark, and More Hadoop Alternatives.pdf: =2651 (访问密码: 2651)

更多推荐

mysql 中!= 到底走不走索引?

本文发布于:2023-11-16 17:55:39,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1629447.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:不走   索引   mysql

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!