![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 28.10.2004 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Jak w temacie : Czy zna ktoś może jakiś sprawdzony szybki sposób na aktualizację około 12000 rekordów w bazie MySql ?
wykonywane 12 tyś. razy trwa wieki ... co dziwne INSERT (12 tyś) wykonuje się za to bardzo szybko. Chodzi tutaj o całkowitą aktualizację cen w jednej z tabel na podstawie pliku CVS lub XML więc aktualizować musi się wszystko niestety. Wiem że MySql nie aktualizuje wartości które są identyczne jak podawane w zapytaniu ... nie wiem tylko czemu to się wykonuje tak długo. Ten skrypt będzie używany raz na miesiąc więc czy wykonywanie go będzie wydajne nie ma znaczenia. Chodzi tylko o to aby trwało to mniej niż 30 sekund ![]() Jeśli nie będzie innego rozwiązania to zostaje mi podzielić zapytania w paczki np. po 500 sztuk i wysyłać je kolejno :/ Ten post edytował sobieh 26.09.2007, 19:27:18 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 2 921 Pomógł: 269 Dołączył: 11.08.2005 Skąd: 127.0.0.1 ![]() |
Nie da się napisać bardziej wydajnego zapytania niż to, które podałeś. Zapytania update wykonują się dłużej ponieważ najpierw trzeba znaleźć wiersz, który należy zaktualizować, a przemielić 12 tysięcy jakąś tabelę nie należy do najszybszych.
Co zrobić, by działało szybciej? Założyć index na pole, po którym następuje wyszukiwanie. Zmienić typ tabeli na np. MyISAM lub MEMORY. Sądzę, że nie da się zjechać poniżej 30 sek. Zgaduję, że jest Ci to potrzebne do wykonania tych zapytań na stronie i wyskakuje Ci timeout. Zamiast kombinować z paczkami zapytań wykonaj skrypt z wiersza poleceń i kłopot z głowy. -------------------- I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 28.10.2004 Ostrzeżenie: (0%) ![]() ![]() |
Thx very much!
Tabela jest MyISAM od początku. Index pomógł ... szczerze mówiąc to nie wpadłem na to ![]() Update zadziwiająco przyspieszyło i wykonuje się w ~3 sekundy. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 31.07.2025 - 07:59 |