[英]MYSQL WORKBENCH 5.7, CREATE TABLE FROM QUERY SLOW
我一直使用MS Access,并且以前使用主数据表创建了汇总表(maketable查询),即我的主数据包含发票上的所有销售信息,然后我按客户创建了销售汇总表,这意味着我的行较少通过Intranet页面查看该表时,显示速度要快得多。
现在,我决定移至MYSQL,并且没有maketable命令,但是我可以基于选择查询创建一个名为“ customersales”的表。 我的主表中有100万行,称为“销售”。 这样,完成过程需要257秒,在我看来这很慢。 结果实际上将47000条记录返回到新表中
以下是我的创建表语句:-
CREATE DEFINER = root
@ localhost
步骤'CREATE_SALESCUSTOMER'()开始
SET SQL_SAFE_UPDATES = 0;
从salescustomer中删除;
INSERT
INTO SALESCUSTOMER(SumOfNET, SUMOFGROSS, SumOfQTY, SUMOFSQMQUANTITY,
SUMOFMARGIN, SumOfBUDGETNET,SumOfBUDGETMARGIN,SumOfBUDGETSQM,
VKORG,VKBURORDER,VKGRPORDER,SALESGROUPORDER,SALESOFFICEORDER,
CUSTOMER,NAME1,KUNN2,PARTNERNAME,PERDE,GJAHR,SALESDIRECTOR,
SALESDIRECTORNAME,VKBUR,VKGRP,SALESGROUP,SALESOFFICE,
STRAS,ORT02,ORT01, COUNTY,PSTLZ,TELF1,konda,kondatext
)
SELECT Sum(SALES.NET_SALES) AS SumOfNET,Sum(SALES.NET_SALES) AS SUMOFGROSS,
Sum(SALES.QTY) AS SumOfQTY,
Sum(SALES.SUMOFSQMQUANTITY) AS SUMOFSQMQUANTITY,
Sum(SALES.UKMARGIN) AS SUMOFMARGIN,
Sum(SALES.BUDGETNET) AS SumOfBUDGETNET,
Sum(SALES.BUDGETMARGIN) AS SumOfBUDGETMARGIN,
Sum(SALES.BUDGETSQM) AS SumOfBUDGETSQM,
SALES.VKORG,SALES.VKBURORDER,
SALES.VKGRPORDER,SALES.SALESGROUPORDER,
SALES.SALESOFFICEORDER,SALES.CUSTOMER,SALES.NAME1,SALES.KUNN2,
SALES.PARTNERNAME,SALES.PERDE,SALES.GJAHR,SALES.SALESDIRECTOR,
SALES.SALESDIRECTORNAME,SALES.VKBUR,SALES.VKGRP,SALES.SALESGROUP,
SALES.SALESOFFICE,STRAS,ORT02,ORT01, COUNTY,PSTLZ,TELF1,
konda,kondatext
FROM SALES
GROUP BY konda,kondatext,SALES.VKORG,SALES.VKBURORDER,SALES.VKGRPORDER,
SALES.SALESGROUPORDER,SALES.SALESOFFICEORDER,SALES.CUSTOMER,
SALES.NAME1,SALES.KUNN2,SALES.PARTNERNAME,SALES.PERDE,
SALES.GJAHR;
任何人都可以帮忙,我做错了吗,那速度正常吗? 抱歉,MYSQL的新手
谢谢凯文
不要每次都从头开始重建摘要表。 而是每天(或每周,每小时或任何时间) 增加它。 通常最好用INSERT .. ON DUPLICATE KEY UPDATE .. SELECT ...
。 确保有一些专栏,以便您“记住上次停止的工作”。
这样做的副作用是,每次都不会传递完整的47K行,并且不会删除表,从而使您暂时没有任何数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.