入职第一天,某老板写了一个统计函数count(*),需要对a、b两张表进行统计。乍一看挺简单的,但是a表有1000万条数据,b表有300万条数据。使用LEFTJOIN进行查询。结果一直查不出来,可能还要很久。然后,这个锅就甩给了第一天入职的我(我???)。接下来,我们来研究如何优化海量数据的查询。一、准备过程1、创建两张表,表Alarge_student_tb(幼儿园学生哈哈):1000万条记录。表Bsamll_student_tb(小班学生orzzzzzzzz):300万条目。没有索引。a、创建存储过程:插入1000万条数据。n=10000000+1//结束判断条件--创建存储过程DROPPROCEDUREIFEXISTSmy_insert;CREATEPROCEDUREmy_insert()BEGINDECLAREnintDEFAULT1;loopname:LOOPINSERTINTO`large_student_tb`(`id`,`username`,`password`)VALUES(n,CONCAT("myname",n),CONCAT("password",n));设置n=n+1;IFn=1000000+1THEN离开循环名;万一;ENDLOOP循环名称;结束;--执行存储过程CALLmy_insert();--数据插入成功后,修改表模式InnoDB。需要更长的时间altertable`large_student_tb`engine=InnoDB;
