GoldeNx3
28.07.2020, 13:16:35
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
28.07.2020, 13:50:18
GoldeNx3
29.07.2020, 06:37:19
Cytat(nospor @ 28.07.2020, 14:50:18 )

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
29.07.2020, 07:32:10
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
29.07.2020, 07:46:20
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
29.07.2020, 08:01:02
No to jaki masz problem? Nie umiesz użyć parametrów do query czy jak?