MySQL优化--覆盖索引,超大分页查询

news/2024/10/17 12:28:42/

目录

覆盖索引

 MYSQL超大分页处理

面试回答

大纲

回答


覆盖索引

覆盖索引是指查询使用了索引,并且需要返回的列,在该索引中已经全部能够找到 。

 MYSQL超大分页处理

在数据量比较大时,如果进行limit分页查询,在查询时,越往后,分页查询效率越低。

我们一起来看看执行limit分页查询耗时对比:

因为,当在进行分页查询时,如果执行 limit 9000000,10 ,此时需要MySQL排序前9000010 记录,仅仅返回 9000000 - 9000010 的记录,其他记录丢弃,查询排序的代价非常大 。

优化思路: 一般分页查询时,通过创建 覆盖索引 能够比较好地提高性能,可以通过覆盖索引加子查询形式进行优化

 

面试回答

大纲

知道什么叫覆盖索引嘛 ?

覆盖索引是指查询使用了索引,返回的列,必须在索引中全部能够找到

使用id查询,直接走聚集索引查询,一次索引扫描,直接返回数据,性能高。

如果返回的列中没有创建索引,有可能会触发回表查询,尽量避免使用select *

MYSQL超大分页怎么处理 ?

解决方案:覆盖索引+子查询

回答

面试官:知道什么叫覆盖索引嘛 ?

候选人:覆盖索引是指select查询语句使用了索引,在返回的列,必须在索引中全部能够找到,如果我们使用id查询,它会直接走聚集索引查询,一次索引扫 描,直接返回数据,性能高。 如果按照二级索引查询数据的时候,返回的列中没有创建索引,有可能会触 发回表查询,尽量避免使用select *,尽量在返回的列中都包含添加索引的字 段

面试官:MYSQL超大分页怎么处理 ?

候选人:嗯,超大分页一般都是在数据量比较大时,我们使用了limit分页查 询,并且需要对数据进行排序,这个时候效率就很低,我们可以采用覆盖索 引和子查询来解决先分页查询数据的id字段,确定了id之后,再用子查询来过滤,只查询这个 id列表中的数据就可以了 因为查询id的时候,走的覆盖索引,所以效率可以提升很多


http://www.ppmy.cn/news/478968.html

相关文章

亚马逊云科技中国峰会:Amazon DeepRacer——载着 AI 梦想向前奔跑

目录 一、Amazon DeepRacer 是什么? 二、Amazon DeepRacer 的前世今生 三、Amazon DeepRacer 深度体验 四、2023亚马逊云科技中国峰会 1.中国峰会总决赛 2.自动驾驶赛车名校邀请赛 3.Girls in Tech Show 4.全球联赛 5.报名链接: 一、Amazon Dee…

PS 如何简单的更换图片的背景色

PS中如何更换图片的的背景色。 1.首先导入该图片。 2.选择魔棒工具如下图 3.使用魔棒工具点击该图片,然后点delete. 4.至此该图片的背景色就已经被干掉了。 5.使用快速选择工具(如上图),右键然后选择填充这一项。 6.选择颜色…

PS修改图片的背景颜色(无需抠图)

1.复制图层,可以鼠标右键复制图层或CtrlJ复制图层 2.在菜单栏找到图像-->调整-->替换颜色,此时鼠标箭头变成了一个吸管的样子,去吸一下想要替换的颜色,然后选择要修改的颜色即可 具体如下操作:

如何使用PS改变只有一种颜色图片的颜色

这里所说的图片是这种单色的图片 首先将这张图片拖到PS中打开,选择 图层 > 图层样式 > 颜色叠加 然后我们选择一种颜色 颜色改完了,保存。

PS修改图标颜色的方法

方案一 1、导入一下图片 2、标题点击锁定透明像素按钮 3、选择改成的色值 4、油漆桶更改颜色 填充即可

PS如何更改图片部分颜色

方法一:(色相调整) 1.使用魔棒、框选、钢笔等在图中框选特定区域,此时选定区域显示“蚂蚁线”; 2.CtrlU调出“色相/饱和度”对话框; 3.默认“全图”(也可点击下拉菜单修改为某种特定颜色&#…

photoshop中 怎么改变一张png图片的颜色

最近写代码遇到一个问题,需要把一些黑色的资源改成是红色的(资源格式是png)。如果老是麻烦美术同学可能不好,我就自己问了一下,修改的过程是很简单的。 打开ps,把png图片拖进去,然后点击魔棒工…

如何用Photoshop去掉图片的背景颜色

由于制作一个网页的需要,要把一个公司的logo放到网页上去,可是这个logo有个背景颜色,而这个背景颜色和整个网页的背景色很不协调,所以需要把logo的背景色去掉并将logo变成透明的。 经过别人的指点和一番摸索之后,找到…