I sugerują, że należy rozważyć następujące przypadki, starając się zachować zapytań SQL całej dzielonych plików:
- Zapytanie pojedynczy SQL może być podzielony na kilka wierszy, dzięki czemu można nie tylko rozłam linia po linii
- poprawne zapytanie SQL zakończy się na średniku (;), a przeważnie będzie to koniec wiersza.
Uzbrojeni w tę wiedzę na temat tych dwóch przypadków, można napisać prosty skrypt, który przetwarza linię zrzutu SQL po linii i dzieli ją na fragmenty, gdy znajdzie wiersz kończący się średnikiem (;), a może 500 takie linie.
Pisałem taki scenariusz podobny problem, który wychodził: https://gist.github.com/pratikone/0a8d503ffe893b2111f5a1d70d3999b7
ono wyłącznie do kontroli średnikiem (;) w wierszu, a nie na końcu linii, ale nie mają żadnych Zapytanie SQL, które zawierało średnik (;) w zapytaniu, więc działało idealnie dobrze. Biorąc to pod uwagę, jest to niewielka zmiana, jeśli dane mogą zawierać średnik pomiędzy zapytaniami.
. Pliki sql nie są przeznaczone do ładowania plików o tym rozmiarze. Będziesz otwierać i zamykać transakcję z każdą linią tego pliku. Aby to zrobić przy dowolnej wydajności, potrzebujesz specjalnych narzędzi. Informowanie nas o tym, które bazy danych są w użyciu, pomoże użytkownikom wskazać właściwy kierunek. – gbtimmon
Utwórz program w języku Python, który czyta go wiersz po wierszu i kontynuuje wprowadzanie go do bazy danych. Możesz także spowodować, że program będzie drukować sporadyczne komunikaty o stanie (% ukończone itp.). –
@SudiptaChatterjee nie sprawiłoby, że będzie wolniejszy, a nie szybszy ????? – gbtimmon