Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jak najwydajniej przerzucić tabelę między bazami?
nexis
post
Post #1





Grupa: Zarejestrowani
Postów: 1 012
Pomógł: 109
Dołączył: 26.09.2003
Skąd: nexis.pl

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


Mam dwie bazy danych, działające na tym samym serwerze. Pierwsza baza ma następującą tabelę:
  1. CREATE TABLE `sklep_parametr` (
  2. `produkt` varchar(32) NOT NULL,
  3. `nazwa` varchar(255) NOT NULL,
  4. `opis` varchar(255) NOT NULL,
  5. `jm` varchar(16) NOT NULL
  6. ) ENGINE=MyISAM DEFAULT CHARSET=latin2;

którą chcę przerzucić do drugiej bazy danych o trochę odmiennej budowie tabeli:
  1. CREATE TABLE `parameter` (
  2. `product_code` varchar(255) collate utf8_polish_ci NOT NULL,
  3. `id` int(11) NOT NULL AUTO_INCREMENT,
  4. `key` varchar(255) collate utf8_polish_ci NOT NULL,
  5. `value` varchar(255) collate utf8_polish_ci NOT NULL,
  6. PRIMARY KEY (`id`),
  7. KEY `product_code` (`product_code`)
  8. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;

Relacje mają być następujące:
product_code = produkt
id = (auto increment)
key = nazwa
value = opis

Jak zrobić taką kopię najwydajniej z poziomu PHP? Warto dodać, że tabela posiada ponad 250.000 wpisów!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
phpion
post
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Najwydajniej chyba byłoby zrzucić dane do pliku CSV, po czym wczytać je do nowej tabeli poprzez LOAD DATA. Kwestia tylko czy pole opis nie będzie tutaj problemem... Tak czy siak LOAD DATA jest pierońsko szybkie więc stawiałbym na tą funkcję.

PS: jeśli bazy są na tym samym serwerze* możesz wykonać INSERT INTO FROM SELECT - będziesz miał mniej zachodu, a i czas wykonania może być szybszy. Generalnie na czas przerzutu danych usunąłbym indeksy (używasz MyISAM więc o wyłączenie sprawdzania więzów integralności nie ma się co martwić).

* widzę, że są więc spróbowałbym tej opcji

Ten post edytował phpion 8.09.2009, 20:33:41
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 10.10.2025 - 13:58