加入收藏 | 设为首页 | 会员中心 | 我要投稿 站长网 (https://www.zhandada.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

MySql 一条普通的查询语句 你知道需要扫描多少行吗?

发布时间:2022-12-15 14:03:46 所属栏目:MsSql教程 来源:互联网
导读: 在码农的世界里,优美的应用体验,来源于程序员对细节的处理以及自我要求的境界mssql 语句快速参考,年轻人也是忙忙碌碌的码农中一员,每天、每周,都会留下一些脚印,就是这些创作的内容,

在码农的世界里,优美的应用体验,来源于程序员对细节的处理以及自我要求的境界mssql 语句快速参考,年轻人也是忙忙碌碌的码农中一员,每天、每周,都会留下一些脚印,就是这些创作的内容,有一种执着,就是不知为什么,如果你迷茫,不妨来瞅瞅码农的轨迹。

在这里,有一张存有300多万条数据的表,你知道接下来会发生什么吗 ?

快速翻译语句_mssql 语句快速参考_mssql快速修复工具1.1

一条普通的SQL查询如下:

select id from question_wrong where user_id between 740 and 770

你看到的结果如下图所示

mssql 语句快速参考_快速翻译语句_mssql快速修复工具1.1

你知道需要执行几次树的搜索操作以及会扫描多少行吗?

如下所示,是这个表的建表语句,一个主键索引,有个普通索引:

CREATE TABLE question_wrong(
	id BIGINT(20) PRIMARY KEY ,
	user_id BIGINT(20) NOT NULL DEFAULT 0 ,
	question_info VARCHAR(16) NOT NULL DEFAULT '' ,
	INDEX index_user_id(user_id)
) ENGINE = INNODB;

当执行下面的查询语句时,它的执行流程如下图所示:

select id from question_wrong where user_id between 740 and 770

快速翻译语句_mssql 语句快速参考_mssql快速修复工具1.1

在这个查询过程中,回主键索引表查询的过程为回表过程,这个查询过程,执行了两次回表,如当前这个查询中只期望查询返回ID这一列,而ID的值在user_id的索引树上,不需要回表查询也能获取到这个值,这种现象被称为覆盖索引,如果查询返回的列信息还有其他的,那必然得执行回表操作。

完毕

不局限于思维,不局限语言限制,才是编程的最高境界。

MySql 一条更新语句是如何执行的?MySql WAL

(编辑:站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!