Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Bardzo mała szybkość zapytań do SQL
JohnyBB
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 16.05.2008

Ostrzeżenie: (0%)
-----


Witam.
Jestem w miarę początkującym i doszedłem do problemu z którym nie mogę sobie poradzić, mianowicie:
jest sobie baza danych SQL, jest skrypt PHP który ma za zadanie wczytanie danych z pliku XML.
Plik XML - dość duży - około 16 tys pozycji.
Skrypt 'leci' po kolei i wczytuje dane z pliku, jeśli tylko wyświetlam te dane to trwa to moment- natomiast gdy robię UPDATE do bazy trwa to bardzo długo i wysypuje się po pewnym czasie.
Prawdopodobnie mam gdzieś błąd który zwalnia całą procedurkę - czy mogę prosić o pomoc forumowiczów ?


CODE

$data = simplexml_load_file(file.xml');


foreach($data -> produkty as $produkty)
{
foreach($produkty -> produkt as $produkt)
{

$id = (string) $produkt['id'];
$cena_netto = (string) $produkt['cena_netto'];
$dostepny = (string) $produkt['dostepny'];


if ($dostepny>0)
{

$query = "
UPDATE produkt SET wyswietlony=1,cena_netto='$cena_netto' WHERE kod_producenta LIKE '$id'
";
$result = mysql_query($query)
or die("Query UPDATE is failed");
}


}
}


Ten post edytował JohnyBB 16.05.2008, 13:52:09
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
batman
post
Post #2





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




No cóż. Skoro masz 16 tyś. pozycji to nie ma co się dziwić, że wolno działa, zwłaszcza, że update jest robiony dla większości produktów. Można nieco poprawić wydajność zapytania, jednak i tak nic to nie pomoże, jeśli uruchamiasz skrypt w przeglądarce. Masz dwa wyjścia:
1. Podzielić plik na mniejsze paczki i każdą paczkę z osobna mielić (samo dzielenie pliku może się nie udać z powodu dużego rozmiaru pliku).
2. Uruchomić skrypt w konsoli.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 6.10.2025 - 02:43