Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Kopiowanie dużych danych z tabeli do tabeli
Forum PHP.pl > Forum > Bazy danych > MySQL
GoldeNx3
Cześć,

mam za zadanie przekopiować dużą ilość danych z jednej tabeli do drugiej. Pytanie teraz jak to najlepiej zrobić za pomocą OFFSETu i LIMIT? Dodam, że do drugiej tabeli muszę dopisać jeszcze jedną kolumnę która będzie miała defaultowo ustawione "1". Tabela ma około 100mln rekordów. Jak to zrobić w PHPie za pomocą jakiejś pętli i dobrego zapytania?
nospor
A czemu nie zrobisz tego na poziomie bazy danych?
https://dev.mysql.com/doc/refman/8.0/en/insert-select.html
GoldeNx3
Cytat(nospor @ 28.07.2020, 14:50:18 ) *
A czemu nie zrobisz tego na poziomie bazy danych?
https://dev.mysql.com/doc/refman/8.0/en/insert-select.html



Zw względu na to, że danych jest za dużo. Muszę to rozbić na paczki i zrobić to w pętli wykorzystując offset i limit, bo jak będzie aktualizacja kodu produkcyjnego, to system nie może być zbyt długo wyłączony i migracja nie może się zbyt długo wykonywać. Część muszę wykonać przy wyłączeniu systemu, a część już po włączeniu.
Pyton_000
a może na poziomie filesystemu? Zrób sobie kopię obecnej tabelki, zmapuj ją do mysql, dodaj kolumnę i tyle, po wdrożeniu zrobisz sobie sync danych które doszły (ew. się zmieniły jeśli tak się może stać)

Możnaby użyć https://www.percona.com/doc/percona-toolkit...table-sync.html

Kod
pt-table-sync --execute h=host1,D=db,t=tbl1 h=host1,D=db,t=tbl2
GoldeNx3
Zasada jest taka, że wszystko musi być wykonane przez PHP przez migtool, co za tym idzie tylko kod PHP i ewentualnie kod MySQL
Pyton_000
No to jaki masz problem? Nie umiesz użyć parametrów do query czy jak?
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.