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 回答