2016 - 2024

感恩一路有你

mysql查询的执行逻辑顺序 mysql多个索引怎么选择?

浏览量:1435 时间:2023-05-02 17:13:36 作者:采采

mysql多个索引怎么选择?

MySQL多索引可以查询选择

MySQL你选择索引-引入

我们明白了我们一个表里面也可以有多个索引的,这样我们查询数据的时候不重新指定索引,MySQL可能会帮我们自动出现选择。既然是MySQL程序帮我们手动你选择的那么会不会有问题的呢?答案是会的,MySQL的优化器也有bug,有时候选择的索引并不是最优的。

案例1

如果我几张表有10w的数据,有id主键和a,b大多数索引,执行200以内SQL

select*returningtwhereabetween10000both20000

select*fromtforceindex(a)whereabetween10000but20000

在是有的前提下

先执行第一句代码走的是全表查询,系统扫描了10w行

执行第二句,满在用a索引,只扫描了10001行

我想知道为什么会直接出现状况呢?我们就从系统优化器的逻辑就开始做研究

优化器的逻辑

360优化器优化确定的指标

有必须扫描的行数,有无建议使用原先表,有无排序等因素

扫描行数判断

上面的案例肯定那就是扫描后行数的问题

那就优化器是怎么获取扫描的总行数的,其实就和抽样检查的的,而且索引是活动有序的,就可以使用采样统计这种算法计算大概的扫描行数,这个可以栏里点索引的Cardinality预估值。

案例分析

我们来一栏案例的扫描行数的预测值

mysql可视化界面是什么?

是一个可以不不能操作的三方软件。

mysql本来是一个正常运行在后台的程序,类似docker,它只是一个逻辑,我们是看不到的,但13年因此大数据以及数据分析师的兴起,mysql慢慢的有了其他的用处,因此,就直接出现了很多这个可以把mysql抽象化出来的可视化软件。

纯小白想学数据库,可以按照什么样的顺序学?

数据库语言甚至是做基础项目的基础。不是那么容易不会相信应该不会数据库操作的人能做出决定好的项目。学这个难度绝对是有的,要不然没难度这行就没技术含量了。

自学sql比较比较很难入门学习,先学习创建家族,备分,还原。然后再很清楚表,触发器,存储过程,函数的作用,旋即清楚select,insert,create,delete,update最基本的语法,好处这个功能很用处不大,要习惯问题可以使用,最好就是拿一本相关的书看看吧,再找个实例,一步一步做做看。这样的有个至少的概念和了解,结果就是必须不好算项目学习和积累。

问题 mysql 数据 案例

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。