Kopiowanie dużych danych z tabeli do tabeli |
Kopiowanie dużych danych z tabeli do tabeli |
28.07.2020, 13:16:35
Post
#1
|
|
Grupa: Zarejestrowani Postów: 228 Pomógł: 1 Dołączył: 24.12.2010 Ostrzeżenie: (0%) |
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? |
|
|
28.07.2020, 13:50:18
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 440 Pomógł: 6290 Dołączył: 27.12.2004 |
A czemu nie zrobisz tego na poziomie bazy danych?
https://dev.mysql.com/doc/refman/8.0/en/insert-select.html -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
29.07.2020, 06:37:19
Post
#3
|
|
Grupa: Zarejestrowani Postów: 228 Pomógł: 1 Dołączył: 24.12.2010 Ostrzeżenie: (0%) |
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. Ten post edytował GoldeNx3 29.07.2020, 07:03:42 |
|
|
29.07.2020, 07:32:10
Post
#4
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
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
|
|
|
29.07.2020, 07:46:20
Post
#5
|
|
Grupa: Zarejestrowani Postów: 228 Pomógł: 1 Dołączył: 24.12.2010 Ostrzeżenie: (0%) |
Zasada jest taka, że wszystko musi być wykonane przez PHP przez migtool, co za tym idzie tylko kod PHP i ewentualnie kod MySQL
|
|
|
29.07.2020, 08:01:02
Post
#6
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
No to jaki masz problem? Nie umiesz użyć parametrów do query czy jak?
|
|
|
Wersja Lo-Fi | Aktualny czas: 29.03.2024 - 01:47 |