Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: MYSQL, update, key, index
Forum PHP.pl > Forum > Bazy danych > MySQL
maly_swd
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
erix
A nie prościej zamienić ALTER z indeksami na nowej, zamienić tabele nazwami?

Jakie masz konkretnie zastosowanie? Jaki silnik?
maly_swd
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?
erix
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.
maly_swd
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)
erix
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
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.