Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] optymalne rozwiązanie
Forum PHP.pl > Forum > Bazy danych
aladin07
moje pytanie dotyczy najbardziej optymalnego rozawiazania jesli chodzi o zuzycie zasobow serwera ( w moim przypadku vps'a)

otoz moj skrypt za pomoca xmlreadera parsuje pliki xml i wynik tego parsowania
chce zapisac do bazy danych i o ile korzystanie z samego xmlreadera obciaz ile sie da
procesor to oszczedza ram - zuzycie ramu wzrasta o 1-2MB wiec nie jest to dla mnie
problemem

problemem jest juz natomiast pakowanie kilkudziesieciu tysiecy rekordow najpierw w petli do tablicy
a pozniej przepisywanie w petli z tablicy do tworzonego duzego insteru zeby jednorazowo
wrzucic duza ilosc danych do bazy (powiedzmy po 10tys. rekordow)
takie rozwiazanie niestety powoduje wykorzystanie calego ramu i przerwanie skryptu przez serwer

teraz dochodze do wniosku ze moze lepiej ominac calkowicie tablice i od razu zrobic warunek (aby odpowiednia ilosc
rekordow - 10tys. - no wlasnie a moze inna wieksza czy mniejsza ) wstawiania takiej ilosci
danych do pojednynczego inserta

bo z tego co czytalem to najmniejoptymalnym rozwiazaniem dla byloby wrzucanie jakis malutkich insertow

bardzo prosze o podpowiedz jak najbardziej optymalnie to rozwiazac bo przede mna jeszcze pliki
xml o ilosciach rekordow w setkach tysiecy i wiekszych a obecny sposob nie pozwoli serwerowi tego wykonac winksmiley.jpg
a nie chce kola od nowa wynajdywac

pozdrawiam i z gory dzieki za pomoc
vokiel
Rób w pętli od razu inserty, po co dodatkowo męczyć serwer robieniem tablicy?? Tylko nie 10tys na raz!!
W granicach 100 insertów na raz, nawet mniej, ale to zależy od tego co te inserty zwierają...

Pozdrawiam
phpion
Wg mnie lepiej jest przerzucić te dane z XMLa do zwykłego pliku tekstowego (w PHP), a następnie całość załadować do bazy z wykorzystaniem LOAD DATA. Poiwnno być najwydajniej.
aladin07
vokiel
dane w insertach to daty, ceny, identyfikatory czy opisy produktow wiec kazdy insert w moim przypadku to ponad 20
kolumn w jednym rekordzie i teraz sie zastanawiam czy czasami tak jak proponujesz inserty po 100 rekordow z kolei
nie beda powodowaly zbytnich obsuw czasowych (wiem wiem lepiej sobie samemu to zmierzyc) ale tak troche teoretyzuje
bo o ile przy wpisie 10 tys. rekordow to bedzie takich insertow 100 to juz przy milionie rekordow mamy takich insertow
10 tys. wiec tez trzeba bedzie sprawdzic czy to poza zuzyciem zasobow serwera mialo sens czasowy

phpion
dzieki za kolejna cenna sugestie - bede musial sprobowac i takiego rozwiazania
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.