0

mysl クエリに問題があります。応答時間が長すぎます。私のクエリ:

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秒待たなければなりません

4

1 に答える 1

0

id_typ_produktが table に属していると仮定すると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また、他のすべての結合テーブルのすべてのフィールドにインデックスが存在することを確認する必要があります。

于 2013-03-09T22:22:54.453 に答える