![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 1 Dołączył: 13.05.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Witam, chcę wybrać z bazy MS SQL-a rekordy i wrzucić je do MySQL-a na którym stoi cały sklep internetowy. Problem w tym ze w jednej tabeli jest ponad 5 mln rekordów i tak się zastanawiam jak to najlepiej zrobić. Aktualizacja tej tabeli będzie następować raz na dzień w nocy wiec z czasem nie ma tu problemu.
Zrobiłem select z ms sql i od razu insert do mysql ale po chwili wyskoczył błąd ze php nie jest w stanie zadeklarować tak dużej ilości danych.
czy ktoś kiedyś dokonywał takich duzych operacji i może się podzielić widzą jak to najlepiej zrobić? Ten post edytował termin 11.07.2010, 10:49:31 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 171 Pomógł: 18 Dołączył: 13.03.2009 Skąd: lublin Ostrzeżenie: (0%) ![]() ![]() |
najszybciej to zrobisz tak:
generujesz plik TXT za pomocą BCP bcp z lini poleceń BCP z poziomu TSQL-a następnie transportujesz taki plik FTP-em, to można np. zrobić za pomocą FTP.exe, lub czegokolwiek innego FTP z commandline następnie robisz z poziomu MySQL-a LOAD INFILE to jakiejś tabeli LOAD INFILE jak już coś takiego zrobisz to masz dane w MySQL-u i idzie już szybko dla przykładu: ładowanie pliku o wielkości 400 MB ~12 mln rekordów to około 30 s jeżeli zrobisz z tego ładny pliczek CMD i na końcu tego pliku odpalisz kod SQL odpowiedzialny za ładowanie danych to można to zupełnie zautomatyzować Ten post edytował prachwal 11.07.2010, 22:11:20 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 7.10.2025 - 03:33 |