![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 439 Pomógł: 0 Dołączył: 3.06.2010 Ostrzeżenie: (50%) ![]() ![]() |
Mam tabele która ma kilka milionów rekordów, wykonanie na niej najprostsze UPDATE zajmóje około 20 sek
Sama tabela ma około 30 kolumn, to też ma wpływ na czas wykonania. Czy można coś zrobić żeby było szybciej? Czy może najlepiej rozbić tabele na mniejsze w sensie liczby kolumn? Ten post edytował borpaw 13.07.2013, 10:24:12 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 702 Pomógł: 65 Dołączył: 16.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
może na początku pokaż strukturę tabeli i zapytanie jakim wykonujesz update
-------------------- Nie udzielam pomocy poprzez PW
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 439 Pomógł: 0 Dołączył: 3.06.2010 Ostrzeżenie: (50%) ![]() ![]() |
Proszę bardzo, tabela:
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 587 Pomógł: 131 Dołączył: 8.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
-------------------- Despite the tons of examples and docs, mod_rewrite is voodoo. Damned cool voodoo, but still voodoo. --Brian Moore
I never go looking for a sucker. I look for a Champion and make a sucker of of him. --Amarillo Slim Home-made : js-gui-classes | Accordion | Tabs | Carousel / php-sms-classes | Obsługa bramki SMS MultiInfo | Obsługa bramki SMS Mobiltek |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 439 Pomógł: 0 Dołączył: 3.06.2010 Ostrzeżenie: (50%) ![]() ![]() |
Zmieniłem na InnoDB i jest znacznie gorzej.
Chyba nic poza rozbiciem na mniejsze tabele nie pozostaje, co myślicie? |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 045 Pomógł: 141 Dołączył: 19.09.2006 Skąd: B-tów Ostrzeżenie: (0%) ![]() ![]() |
no niestety ale aktualizacja kilku milionów rekordów musi trochę trwać
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 340 Pomógł: 49 Dołączył: 3.07.2009 Skąd: Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
Zapytam o serwer.
Myślę, że chodzi na słabej maszynie lub na domyślnej konfiguracji. Kilka milionów rekordów to dużo, ale czas rzędu 20s to przesada. Odpalałeś skrypty do optymalzacji?? |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 439 Pomógł: 0 Dołączył: 3.06.2010 Ostrzeżenie: (50%) ![]() ![]() |
nie odpalałem a co dokładnie trzeba zrobić?
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 340 Pomógł: 49 Dołączył: 3.07.2009 Skąd: Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
Mysql wymaga ręcznej konfiguracji wielkości buforów pamięci w pliku konfiguracyjnym.
Domyślna konfiguracja jest wystarczająca dla małych baz danych i słabych maszyn. Wykorzystuje ona jednak małą część dostępnej pamięci RAM komputera. Dla operacji na dużych bazach to nie wystarcza, więc silnik MySQL wczytuje dane "na raty" i tworzy bufor na dysku. Skutkuje to kotastrofalnym spadkiem wydajności. Zrozumienie funkcji poszczagólnych buforów nie jest łatwe, ale istnieją skrypty podpowiadające co zrobić. Poniżej jeden z nich http://www.techerator.com/2011/08/optimize...l-tuner-script/ Ten post edytował bpskiba 14.07.2013, 11:52:40 |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 587 Pomógł: 131 Dołączył: 8.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Wykonujesz UPDATE zapewne z klauzulą WHERE? Tabela ma tylko jeden indeks id. Sprawdź czy przy zapytaniu jest wykorzystywany.
Jeśli wykonujesz UPDATE na milionach rekordów to będzie to trwało dłuuugo. Zerknij jeszcze na PROCEDURE ANALYSE
Ten post edytował rocktech.pl 14.07.2013, 12:11:40 -------------------- Despite the tons of examples and docs, mod_rewrite is voodoo. Damned cool voodoo, but still voodoo. --Brian Moore
I never go looking for a sucker. I look for a Champion and make a sucker of of him. --Amarillo Slim Home-made : js-gui-classes | Accordion | Tabs | Carousel / php-sms-classes | Obsługa bramki SMS MultiInfo | Obsługa bramki SMS Mobiltek |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 03:31 |