Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> MYSQL, update, key, index
maly_swd
post 9.07.2009, 14:43:03
Post #1





Grupa: Zarejestrowani
Postów: 744
Pomógł: 118
Dołączył: 14.02.2009
Skąd: poziome

Ostrzeżenie: (0%)
-----


Witam.
Zastanawiam sie jak przyspieszyc update w mysql.

Mam tabele z 8 polami, mam na tej tabeli 10 roznych indexow (mieszanych).
Jak wiadomo indexy przyspieszaja wyszukiwanie ale zwalniaja updaty. Wiec z tego powodu mam druga tabele bez indexow i do niej wstawiam updaty a na koniec robie:

insert into tabela select * from tabela_tmp - i to przy przenoszeniu 10mil wpisow troche zwalnia...
Cos tam niby doszukalem sie takieg: delay_key_writes , wiecie jak tego uzywac?

Chodzi mi o to aby na czas przepisywania baz wylaczyc aktualizowanie indexow (jesli jest taka mozliwosc) i wlaczyc je po tej operacji.

*ps moze zle mysle , ale nie mam innego pomyslu

ps2. tabele myisam


--------------------
śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu..
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
erix
post 9.07.2009, 14:46:21
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A nie prościej zamienić ALTER z indeksami na nowej, zamienić tabele nazwami?

Jakie masz konkretnie zastosowanie? Jaki silnik?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
maly_swd
post 9.07.2009, 14:57:23
Post #3





Grupa: Zarejestrowani
Postów: 744
Pomógł: 118
Dołączył: 14.02.2009
Skąd: poziome

Ostrzeżenie: (0%)
-----


silnik myisam.

W sumie to dobry pomysl co podales:)

Czyli mowisz:
1. updetowac tabele_tmp
2. po updacie zmienic nazwe table na table_tmp_2
3. zmioenic table_tmp-> table
4. table_tmp_2->table_tmp

a pozniej dodac indexy?

A jeszcze jakies moze rozwiazanie przyjdzie Ci do glowy?


--------------------
śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu..
Go to the top of the page
+Quote Post
erix
post 9.07.2009, 15:03:31
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Nie, nieco inaczej:
  1. CREATE TABLE LIKE zrodlowa, tylko bez indeksów; wypełniasz ile Ci tam trzeba
  2. ALTER TABLE - zakładasz sobie indeksy, powinno pójść szybciej niż metodą, którą do tej pory robiłeś
  3. blokujesz serwis na chwilkę, DROP TABLE starą, ALTER TABLE - zmieniasz nazwę nowej na starą
  4. unlock winksmiley.jpg

Cytat
A jeszcze jakies moze rozwiazanie przyjdzie Ci do glowy?

Nie podałeś zastosowania.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
maly_swd
post 9.07.2009, 15:49:13
Post #5





Grupa: Zarejestrowani
Postów: 744
Pomógł: 118
Dołączył: 14.02.2009
Skąd: poziome

Ostrzeżenie: (0%)
-----


tabelka jest z ofertami importowanymi z xmli raz na 24h. Import trwa okolo 8h (nie wnikajac w to co robi, po przeanalizowaniu xmli wstawia do tabelki TMP)


--------------------
śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu..
Go to the top of the page
+Quote Post
erix
post 9.07.2009, 16:13:38
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Mam na tapecie podobny problem. Nie lepiej zrobić INSERT INTO ... ON DUPLICATE UPDATE, dodatkowo update'ować czas zmiany; kasowanie nieistniejących wpisów wg czasu.

Update na 100% będzie szybszy niż wymiana wszystkiego i nie będzie wymagało przebudowywania indeksów. [;


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
maly_swd
post 9.07.2009, 16:23:30
Post #7





Grupa: Zarejestrowani
Postów: 744
Pomógł: 118
Dołączył: 14.02.2009
Skąd: poziome

Ostrzeżenie: (0%)
-----


Niestety tak nie da rady:) w zasadzie wszystkie dane sie zmieniaja;) pozostaje jakies 10-20% togo co bylo..

ok, dzieki za sugestie i pomoc.
pozdrawiam


--------------------
śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu..
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 31.07.2025 - 10:53