Mysql多表关联不走索引的原因及分析

发布时间:2025-05-18 20:22:28 作者:益华网络 来源:undefined 浏览量(1) 点赞(1)
摘要:刚入职第一天,有个大佬写了一个统计函数count(*)需要对两张表a,b做统计。咋一看挺简单的,可是表a有1000万条数据,表b有300万条数据。使用LEFT JOIN进行查询。结果,一直查询不出来,可能时间就很久了。然后,这个锅就甩给第一天入职的我(我???)。 接下来,就研究一下

刚入职第一天,有个大佬写了一个统计函数count(*)需要对两张表a,b做统计。咋一看挺简单的,可是表a有1000万条数据,表b有300万条数据。使用LEFT JOIN进行查询。结果,一直查询不出来,可能时间就很久了。然后,这个锅就甩给第一天入职的我(我???)。

接下来,就研究一下如何对海量数据的查询进行优化。

一、准备过程

1.创建两张表,表A large_student_tb(幼儿园大班学生哈哈):1000万条。表B samll_student_tb(小班学生orzzzzzzz):300万条。不建立索引的情况。

a,建立存储过程:插入1000万条数据。n=10000000+1//为结束判断条件

-- 创建存储过程 DROP PROCEDURE IF EXISTS my_insert; CREATE PROCEDURE my_insert() BEGIN DECLARE n int DEFAULT 1; loopname:LOOP INSERT INTO `large_student_tb`(`id`,`username`,`password`) VALUES ( n,CONCAT("myname",n),CONCAT("password",n)); SET n=n+1; IF n=1000000+1 THEN LEAVE loopname; END IF; END LOOP loopname; END; -- 执行存储过程 CALL my_insert(); -- 数据插入成功后修改表模式InnoDB 时间稍微久点 alter table `large_student_tb` engine=InnoDB;

二维码

扫一扫,关注我们

声明:本文由【益华网络】编辑上传发布,转载此文章须经作者同意,并请附上出处【益华网络】及本页链接。如内容、图片有任何版权问题,请联系我们进行处理。

感兴趣吗?

欢迎联系我们,我们愿意为您解答任何有关网站疑难问题!

您身边的【网站建设专家】

搜索千万次不如咨询1次

主营项目:网站建设,手机网站,响应式网站,SEO优化,小程序开发,公众号系统,软件开发等

立即咨询 15368564009
在线客服
嘿,我来帮您!