krupek
krupek
#webdev #programowanie #mysql

Co może być przyczyną bardzo długiego wykonywania się zapytania UPDATE w bazie MySQL?
Prosta tabela: id, tresc, wartosc z indeksem unique na id.
Zapytanie UPDATE tabela SET wartosc=123 WHERE id=123543
Prościej się chyba nie da. Cała tabela ma ok. 1 mln rekordów, odwołania są zawsze po id które jest unikalne. Całość wykonuje się kilka minut.
Dlaczego? Przecież milion rekordów przy tak małej złożoności tabeli i zapytania to żaden problem.
  • Najlepsze
  • Wszystkie komentarze
Zajc
Zajc
2
@krupek:
Jaki engine bazy używasz MyISAM/InnoDB? Czy serwer jest obciążony innymi połączeniami? Może w tle uruchamiane są inne zapytania z LOCK TABLE? Czy konfiguracja bazy jest odpowiednia w stosunku do jej rozmiaru (chodzi o cache, open_tables, etc)? Sprawdzić to możesz najprościej tym skryptem: http://mysqltuner.com/
Daredzik
Daredzik
@krupek: poka scheme cała
Zaszczyk
puść explain dla zapytania
wytrzzeszcz
@krupek: limit 1
wytrzzeszcz
@krupek: i indexy