Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]PDO MySQL Powolne działanie skryptu
Forum PHP.pl > Forum > Przedszkole
ozzy1988
Witam!

Zabrałem sie ostatnio za modernizację mojego programu i postanowiłem przejść z mysql_connect na klasę PDO.

Aby nie komplikować sobie życia skorzystałem dla testów z tej klasy indieteq/PHP-MySQL-PDO-Database-Class.

Po odpaleniu wszystkiego okazało się,że wszystko działa okropnie mozolnie, klasa łączy się i wykonuje zapytania ale ich czas to jakaś masakra.

Dla porównania gdy logowanie było zrealizowane na mysql_connect() strona ładowała się błyskawicznie a przy PDO trwa to ok 30 do 60 sekund - czasami nawet powyżej minuty.

To moje pierwsze doświadczenia z PDO i nie wiem czy może ja coś źle robię czy ta klasa ma jakis błąd...

Dodam, że łącze się z bazą za pomocą adresu IP serwera

Pozdrawiam
Turson
Pewnie działa wolno, bo każdy nowy obiekt $db = new DB(); to nowe połączenie do bazy...
https://github.com/indieteq/PHP-MySQL-PDO-D...er/Db.class.php
Tutaj lepszy byłby Singleton
ozzy1988
Można to jakoś naprawić? Czy zastosować inną klasę?

Rozumiem, że "Singleton" to nazwa klasy?

Pozdrawaim
Turson
Nie, to wzorzec projektowy. W każdym bądź razie chodzi o to, że jak tworzysz nowy obiekt DB
  1. $db = new DB();

w wielu różnych miejscach, to żeby za każdym razem nie tworzyło nowego połączenia (jak to robi teraz i spowalnia proces), a operowało cały czas na jednym.
ozzy1988
Okkk, udało się biggrin.gif
  1. $db = Db::getInstance();

Dziękuje Ci bardzo!

niestety, przedwczesna radość każde pobranie danych z mysql krytycznie spowalnia działanie skryptu sad.gif

W klasie Db.Class.php dodałem kod

  1. private static $instance;
  2. private function __clone() {}
  3.  
  4. public static function getInstance() {
  5. if(self::$instance === null) {
  6. self::$instance = new DB();
  7. }
  8. return self::$instance;
  9. }
com
@Turson singleton w 2015 roku ? Depedency injection teraz sie stosuje smile.gif
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.