簡體   English   中英

MYSQL WORKBENCH 5.7,從查詢緩慢創建表

[英]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行,並且不會刪除表,從而使您暫時沒有任何數據。

更多討論: http : //mysql.rjweb.org/doc.php/summarytables

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM