Basit seçme sonuçlar hızlı iken MySQL tablo, çok fazla zaman ayırdığınız katılmak

oy
-1

Bir InnoDB'nin tablo var daily_sales_msr.

Üyesi olmadığım bu tablodan bir sorgu çalıştırdığınızda, sorgu hızla çıkış verir.

Ben bile küçük bir masa ile bu tabloyu katılmak Ama, eğer, o zaman çok fazla zaman alır. Bu sorunun çözümü nedir?

Örneğin:

SELECT
sku.ssku,
ROUND(SUM(daily_sales_msr.sale), 3) AS sale,
MONTHNAME(daily_sales_msr.date) AS `month`
FROM
daily_sales_msr
INNER JOIN sku ON sku.id = daily_sales_msr.skid
WHERE
daily_sales_msr.date BETWEEN '2018-08-01'
AND '2018-08-08'
GROUP BY
daily_sales_msr.skid

Bu sorgu 1000'ler daha fazlası gerekir.

herhangi katılmadan olmadan sadece 0.15s sürer.

Oluştur 02/09/2018 saat 05:26
kaynak kullanıcı
Diğer dillerde...                            


1 cevaplar

oy
1

performans için Uygun endeksine sahip emin olun
Eğer bir bileşik endeksi üzerinde kullanabilirsiniz sizin durumunuzda

table daily_sales_msr for  columns  (skid,date) 

ve SQL için size tarafından grubunu kullanarak ancak seçme sütunun bazı grubunda formu 5.7 başlayarak MySQL bu en db motoru e notb Varsylan tarafından alloed edilir toplama fonksiyonu ile ilgili olmayan değil .. bu sütunlar için sonuç o kadar tahmin edilemez Eğer göre gruplandırmak için bu sütunları eklemek gerekir

SELECT
  sku.ssku,
  ROUND(SUM(daily_sales_msr.sale), 3) AS sale,
  MONTHNAME(daily_sales_msr.date) AS `month`
FROM  daily_sales_msr
INNER JOIN sku ON sku.id = daily_sales_msr.skid
WHERE  daily_sales_msr.date BETWEEN '2018-08-01'  AND '2018-08-08'
GROUP BY  daily_sales_msr.skid, month 

ya da bu sütunlar için de bir agregasyon fonksiyonu kullanmak

SELECT
  sku.ssku,
  ROUND(SUM(daily_sales_msr.sale), 3) AS sale,
  MAX(MONTHNAME(daily_sales_msr.date)) AS `month`
FROM  daily_sales_msr
INNER JOIN sku ON sku.id = daily_sales_msr.skid
WHERE  daily_sales_msr.date BETWEEN '2018-08-01'  AND '2018-08-08'
GROUP BY  daily_sales_msr.skid
Cevap 02/09/2018 saat 06:31
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more