关于mysql当中给数据量特别大的两个表做关联查询的时候解决查询速度很慢的解决方法

gxg123 gxg123     2022-11-23     262

关键词:

今天碰到了两个表做关联查询的mysql,这两个表的数据量都是特别大的,有一个表的数据是上亿条的数据,有一个是几百万的数据,

查询的速度是特别慢,然后我看了一下执行计划,下面是执行执行计划:

看到上面这个图这个数据量是特别大的,这个查询起来的肯定是非常慢的,而且他的类型都是ALL类型,也就是都是全表进行扫描的。然后在网上找资料,然后发现我们可以给关联的字段建索引。

于是我给关联字段建立了索引,然后就发生了下面的变化:

 

整个的行数就成不知道多少个数量级的情况在下降,整个的查询速度也是加快了额很多,现在查出数据只要几十毫秒的速度,真的不敢想象。

具体给数据字段建立所以,以及为啥会发生这样的变化,详细参考下面的的连接:

https://www.cnblogs.com/zedosu/p/6555981.html

从上面的例子可以看出,我们所写的sql当有语句进行优化的时候,查询速度是非常快的。除了给字段建立索引的方式之外,我们还可以通过其他的方式对我们的sql进行优化,来减少查询的时间。

 

mysql的limit优化

参考技术Amysql5.7.28按id增序导出t_order_detail表数据,由于数据量过多,防止一次查询数据量大多导致异常,批量查询数据,每次查询200条数据,数据量50万,查询出的数据量5万多条。SQL如下Explain结果《高性能MySql第三版》章节6.7.5... 查看详情

sql多表关联,数据量比较大的分页查询,怎么做,有没有较好的方法,

...,可以返回总行数和查询结果追问因为每个表都有上万条数据。这样查出来也很慢追答你可以先count(*)取得一下参考技术A拿空间换时间,先查出来放到临时表里,然后从临时表里分页查追问查出来过程就很费时间了,。。我也试... 查看详情

关于fulljoin语句的性能问题跪求大虾帮忙解决.

selectm.*,row_number()over(partitionbyxxxxbyyyydescnullslast)snfrom(afulljoinb)mwheresn<=100a和b都为数据量5万条左右的表为什么这样执行起来很慢参考技术Aafulljoinb你的关联条件呢?没有关联条件,就是5万×5万的数据量啊!!!关联条件一定要写... 查看详情

关于多对多关系表做一个级联更新的问题(mysql),求高手解答sql语句

有两个表A,B,两个表示多对多的关系,所以还有一个关系表C,为了简化说明,A的字段有ID和TAG、TIME,B的字段有ID和TAG,C的字段有ID、AID、BID。其中ID都为各表主键,AID和BID分别对应A、B表的外键。现在有一个需求,要对A表中存在... 查看详情

oracle在查询sql中不使用orderby,导致数据量足够大的时候同样的sql查询的结果顺序不同?

...考技术Aoracle是按照rowid来排序的,也就是每一行的地址,当中间发生一些数据操作,比如删除数据时,这个物理地址会被新数据使用,oracle的数据在存的时候也是杂乱无序的,可以通过创建索引,根据索引查询解决问题 参考技... 查看详情

mysql通过“延迟关联”进行limit分页查询优化的一个实例

最近在生产上遇见一个分页查询特别慢的问题,数据量大概有200万的样子,翻到最后一页性能很低,差不多得有4秒的样子才能出来整个页面,需要进行查询优化。 第一步,找到执行慢的sql,如下: SELECT    ... 查看详情

怎样给访问量过大的mysql数据库减压

  单机MySQL数据库的优化  一、服务器硬件对MySQL性能的影响  ①磁盘寻道能力(磁盘I/O),我们现在上的都是SAS15000转的硬盘。MySQL每秒钟都在进行大量、复杂的查询操作,对磁盘的读写量可想而知。所以,通常认为磁盘I... 查看详情

浅析mysql多次查询和关联查询的效率问题

...是多次单表查询效率高,为什么?  A、B两个表数据规模十几万,数据规模都不大,单机MySQL够用了,在单机的基础上要关联两表的数据。  先说一个极端情况,A、B两个表都没有索引,并且关联是... 查看详情

浅析mysql多次查询和关联查询的效率问题

...是多次单表查询效率高,为什么?  A、B两个表数据规模十几万,数据规模都不大,单机MySQL够用了,在单机的基础上要关联两表的数据。  先说一个极端情况,A、B两个表都没有索引,并且关联是... 查看详情

mysql多表关联查询leftjoin查询?

...时间322测试2时间1133测试3null等于说是A表全部显示且显示B当中跟他关联的TID最大的那条记录值有没有大神解答解答selecta.ID,a.TID,a.NAME,b.DATEfrom(selectb.ID,b.TID,b.DATEfromBorderbyIDdesc)asbleftjoinAasaona.TID=b.TIDgroupbyb.TID;而且你的表述有问题1、... 查看详情

mysql数据库千万级数据处理?

MySQL数据库,有A表(二十多个字段,4千万条数据)和B表(1个字段,八百多万条数据)。现在要清理A表中的数据,将A表中在B表中不存在的数据清理掉。这个应该怎么处理呢?也就是A表中保留B表中存在的数据,可以通过筛选把... 查看详情

mysql关联查询是不是很耗性能

...就是把X表中的每一行分别与Y表中的每一行组合一次,10W数据表X与30W数据表Y的笛卡尔积将会产生300W条数据。3、X,Y直连、join、leftjoin、rightjoin、innerjion都属于直接连接查询,只不过在查询出的结果集中的数据选取方式有区别而已... 查看详情

MySQL主从配置中,忽略数据量大的表

】MySQL主从配置中,忽略数据量大的表【英文标题】:InMySQLmaster-slaveconfiguration,ignoringtableswithalargeamountofdata【发布时间】:2021-11-0323:12:55【问题描述】:在MySQL主从同步中,由于slave的性能问题,我们配置了忽略表。但是,既然配... 查看详情

未分类

数据库1、按月份等字段分表;2、排序本来是按时间降序的,改为按id降序;3、减少表关联查询,在内存中进行逻辑处理,---》场景4、查询本来是模糊查询,改为下拉框,因为设备名称数量是有限的;---》设备名 设备,逻辑... 查看详情

数据查询必备技能sql调优:mysql什么情况下不走索引(代码片段)

...导在查询报表时,发现特别慢,于是引发一系列关于sql优化的工作,最终发现是分析同学在进行多表关联时进行不等值关联造成全表扫描,且使用字段无索引造成1W条数据表和20W数据表关联时执行缓慢。但是在MySQL... 查看详情

day897.mysql查询结果发送给客户端的过程-mysql实战(代码片段)

...给客户端的过程Hi,我是阿昌,今天学习记录的是关于MySQL查询结果发送给客户端的过程的内容。主机内存只有100G,现在要对一个200G的大表做全表扫描,会不会把数据库主机的内存用光了?这个问题确实值得... 查看详情

请教rdlc报表制作!特别是关于如何在reportview中传递参数给rcld报表,然后报表按参数查询,请高手赐教!

请教rdlc报表制作问题!特别是关于如何在reportview中传递参数给rcld报表,然后报表按参数查询显示数据,即如果我在reportview那个页面添加了一个文本框,如何把文本框的内容传递给报表数据源,然后根据这个传递的参数作为查... 查看详情

mysql数据库高手进来,关于分库和分表的问题

我用mysql建了一个数据库"dba",这个库里有很多表。现在我还想建一张新表(表X),表X跟dba里面已有的表没有任何关联,比如说没有外键来关联。访问dba库里面的表的用户,是不会访问表X的,那么问题就来了,我是在mysql... 查看详情