maly_swd
9.07.2009, 14:43:03
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
A nie prościej zamienić ALTER z indeksami na nowej, zamienić tabele nazwami?
Jakie masz konkretnie zastosowanie? Jaki silnik?
maly_swd
9.07.2009, 14:57:23
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?
Nie, nieco inaczej:
- CREATE TABLE LIKE zrodlowa, tylko bez indeksów; wypełniasz ile Ci tam trzeba
- ALTER TABLE - zakładasz sobie indeksy, powinno pójść szybciej niż metodą, którą do tej pory robiłeś
- blokujesz serwis na chwilkę, DROP TABLE starą, ALTER TABLE - zmieniasz nazwę nowej na starą
- unlock

Cytat
A jeszcze jakies moze rozwiazanie przyjdzie Ci do glowy?
Nie podałeś zastosowania.
maly_swd
9.07.2009, 15:49:13
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)
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. [;
maly_swd
9.07.2009, 16:23:30
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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.