2012-11-02 16 views
5

Mam problem z prostym zapytaniem o aktualizację, które zawsze pojawia się w mojej tabeli mysql-slow-query.log nie jest duże i zawiera tylko 3021 rows.proste zapytanie UPDATE w MySQL zajmuje dużo czasu

kwerenda wygląda następująco:

UPDATE 'address' 
SET 'user' = 1013 
WHERE 'id_adress' = '1' 
    AND 'date' = '2012-06-04' 

Query_time: 2,664413 Lock_time: 0,000043 Rows_sent: 0 Rows_examined: 1

kiedy examinate tę frazę:

select 'user' = 1013 
from 'address' 
where 'id_adress' = '1' 
    AND 'date' = '2012-06-04' 

wtedy wygląda bardzo szybko 1 row in set (0.00 sec)

Dlaczego to proste zapytanie aktualizacyjne zajmuje tak dużo czasu? Jak to naprawić?

+0

Czy masz jakieś indeksy ustawione na stole? Indeksy mogą negatywnie wpływać na szybkość działania aktualizacji na zapytania, nawet jeśli przyspieszają zapytania typu "WYBIERZ". – Ren

+0

@Ren nie ma indeksów w tej tabeli, tylko 1 klucz podstawowy na ID. – stefek143

+0

Ponieważ zapytania te nie mają większego sensu z powodu posiadania jednego cytowanego wszystkiego, zakładam, że faktycznie generujesz je przy użyciu jakiegoś języka klienta i jest to kod SQL, który * myśl * faktycznie działa. Moja rada to podwójne sprawdzenie: 1) Co wygenerował kod SQL 2) Jak ten SQL działa, gdy działał na zewnątrz (v.g. z twojego ulubionego klienta MySQL). –

Odpowiedz

1

najpierw sprawdź, czy Twój stół nie jest uszkodzony,
, jeśli jest to następnie naprawić swój stół.

Druga próba zindeksowania tych dwóch pól używanych w miejscu gdzie klauzula

Powiązane problemy