![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 27.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
muszę połączyć 2 bazy danych w jedną. Bazy składają się z ok 100 tabel połączonych relacyjnie na wiele sposobów. Bazy mają tą samą strukturę 1 do 1. Tabelki sa oparte o silnik InnoDB Każda z baz ma po 200GB, min 1mln rekordów na tabelke a rekordowe tabelki mają po 750mln rekordów. Do każdej bazy co sekundę trafia setki rekordów W każdej z baz rekordy wystartowały od 1..czyli wrzucając dane z jednej bazy do drugiej rozjadą się relacje w tej z której dane dodajemy. Obecnie jedynym pomysłem, który się pojawił w mojej głowie to: Biore jeden rekord z starej bazy dodaje go do nowej bazy danych biorę id, które otrzymam i sciągając kolejne rekordy z powiązanych tabel wstawiam już te nowe ID. Może ma ktoś ciekawszy sposób lub spotkał się z podobnym problemem? ![]() Ten post edytował suli 15.10.2015, 13:54:41 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Niestety duże kuku
![]() Napisanie jakiegoś skryptu i puszczenie go na noc to chyba jedyne sensowne rozwiązanie ![]() |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 27.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
Szukam bardziej rozwiązania na poziomie serwera/bazy danych niż skryptów.
Myślałem nad: 1. zmiana primary keya z int-a na varchara alfanumeric z prefixem ze znaków + miejsc gdzie jest to id 2. podobnie jak w pkt 1 ale prefix liczbowy Jednak boję się rozwalenia bazy danych |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Hmmm... w sumie można by podbić ID powyżej numeru w drugiej bazie.
Jeśli masz CASCADE to automatem i relacje Ci się podbiją. Potem tylko export -> import. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 731 Pomógł: 141 Dołączył: 9.05.2011 Skąd: śląskie Ostrzeżenie: (0%) ![]() ![]() |
Zerknij na SqlYog - http://www.webyog.com/en/. Trial powinien Ci wystarczyć i te 30 dni
![]() Zrób kopię baz przed zabawą, albo wyeksportuj sobie obie bazy "obok" i na nich potestuj. -------------------- Szanuj innych czas! Kliknij
![]() |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 27.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
@Pyton_000, myślałem o tym, tylko czy to nie zabije bazy danych przy tak dużej ilości danych?
@mar1aczi, znalazłem coś jeszcze lepszego niż to, tylko zanim on ściągnie do siebie dane i zrobi merge to pamięć mu się skończy ![]() |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Wiesz lepsze to niż pobieranie i mielenie 200GB
![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 29.06.2025 - 11:19 |