2013-03-09 32 views
0

我對我的mysl查詢有問題。響應時間很長。我查詢:sql查詢速度。對長時間的響應

SELECT SQL_CALC_FOUND_ROWS 
    t.id, 
    l.id_produkt_lista, 
    z.nr_zam, 
    k.nazwa_fv, 
    p.nazwa, 
    p.opis, 
    p.data_realizacji, 
    CONCAT(t.d_graf,'</br>', IF(t.D_d_graf IS NOT NULL, 
     DATE_FORMAT(t.D_d_graf, "%d-%m-%Y"),"")), 
    CONCAT(t.d_druk,'</br>', IF(t.D_d_druk IS NOT NULL, 
     DATE_FORMAT(t.D_d_druk, "%d-%m-%Y"),"")), 
    CONCAT(t.d_zgrz,'</br>', IF(t.D_d_zgrz IS NOT NULL, 
     DATE_FORMAT(t.D_d_zgrz, "%d-%m-%Y"),"")) 
    FROM zamowienie_produkt_lista l 
    JOIN zamowienia_zamowienie z ON (l.id_zamowienie = z.id_zamowienie) 
    JOIN zamowienia_produkt p ON (l.id_produkt = p.id_produkt) 
    JOIN zamowienia_prac_tmp t ON (l.id_produkt = t.id_produkt) 
    JOIN zamowienia_klient k  ON (z.id_klient = k.id_klient) 
    WHERE TRUE 
     AND id_typ_produkt = '1' 
     AND z.archiwum = 0 
    ORDER BY t.id 

當我在phpMyAdmin使用它,我必須等待10秒

+0

什麼是WHERE TRUE? – 2013-03-09 21:59:40

+0

沒有什麼,但它不是這個問題 – marczak 2013-03-09 22:04:50

+0

請在'EXPLAIN ANALYZE'下顯示您的模式,現有索引和查詢輸出 – mvp 2013-03-09 22:11:23

回答

0

假設id_typ_produkt屬於表zamowienie_produkt_lista,創建下列指標應該有所幫助:

CREATE INDEX p_1_idx ON zamowienie_produkt_lista 
    (id_produkt, id_typ_produkt); 

CREATE INDEX z_1_idx ON zamowienia_zamowienie 
    (id_zamowienie, archiwum); 

你應該還要確保所有其他連接表的所有*_id字段上的索引都存在。