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? |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 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 |
|
|
|
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 |
|
|
|
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
|
|
|
|
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
|
|
|
|
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?
|
|
|
|
![]() ![]() |
|
Aktualny czas: 23.12.2025 - 16:39 |