Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PDO][MySQL] Optymalizacja zapytania, Lub inne usprawnienie działania
mlawnik
post
Post #1





Grupa: Zarejestrowani
Postów: 455
Pomógł: 49
Dołączył: 12.04.2010

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


Witam, mam skrypt, który przetwarza tabelę i zapisuje ją do bazy danych.
Oto kod:

https://github.com/marcinlawnik/DziennikLog...rToDatabase.php

Przetwarzanie odbywa się w pętli, chciałbym je zoptymalizować. Przyszły mi do głowy transakcje.

1. Nie mam pojęcia gdzie wstawić $pdo->beginTransaction(); Jak wstawię w środku pętli, to będę ich tworzył bardzo dużo, a przed pętlą select nie wykona się poprawnie. Prosiłbym o nakierowanie.

Wystarczy wstawić na początku skryptu. Sam sobie odpowiedziałem.

Drugie pytanie nadal pozostaje w mocy.

2. Czy są jeszcze inne sposoby na zoptymalizowanie tego zapytania?

Pozdrawiam,
mlawnik

Ten post edytował mlawnik 22.06.2013, 18:55:57
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Cytat
Natomiast co miałeś na myśli w podpunkcie trzecim?
Za każdym razem gdy pobierasz coś z HTML-a, czy raczej już drzewa DOM wykonujesz dosyć kosztowne wyszukiwanie po całym dokumencie. Przykładowo w linii #74 wykonujesz wewnątrz podwójnej pętli coś takiego:
  1. while (...) {
  2. while (...) {
  3. $gradeCell = $html->find('table', 4)->find('tr', $i)->find('td', $x)->plaintext;
  4. }
  5. }
Każdorazowo wykonując względnie rozbudowane wyszukiwanie w dużym dokumencie. A można przecież zrobić coś w stylu:
  1. $table = $html->find('table', 4);
  2.  
  3. foreach ($table->children() as $row) {
  4. foreach ($row->children() as $cell) {
  5. $grade = $cell->plaintext;
  6. }
  7. }
Nagle zamiast $i * $x wyszukiwań w rozbudowanym dokumencie masz jedno.
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: 27.12.2025 - 04:21