PDO::ATTR_PERSISTENT - czy to się nadal stosuje?

0

Mam taki skrypt, który co kilka sekund łączy się z bazą MySQL w celu zapisu/odczytu danych. Wykorzystuje w tym celu bibliotekę PDO. Całość działa, ale...
Załóżmy, że ilość zapytań do serwera zwiększyła się. Czyli częściej odczytuję/zapisuję.
Jak obejść konieczność każdorazowego tworzenia nowego obiektu klasy PDO? Czytałem o PDO::ATTR_PERSISTENT, tylko tak nie do końca to działa. Jest jakiś inny sposób w PHP? Gdzie w ogóle trzymana jest informacja o połączeniu? W cookies, czy po stronie serwera (zmienna sesyjna lub coś podobnego)?

0

Najprościej to zrobić skrypt który będzie działał non stop (jako proces) i na niego kierować zapytania.

0

Jak obejść konieczność każdorazowego tworzenia nowego obiektu klasy PDO?

Hmm, ale w jakim celu?

0

Pytanie, czy to jest "zgodne ze sztuką", by za każdym razem tworzyć taki obiekt?

0

Może pokaż kod. Pytanie jak masz zrobione to łączenie "co kilka sekund". Sam obiekt to tak mały narzut, że gra raczej nie jest warta świeczki.

0

@kosmonauta80: pytanie raczej co znaczy "co kilka" sekund. Jeżeli wykonujesz je co kilka sekund to sugeruje "krótkie i proste" zapytania i raczej powinieneś iść "w drugą" stronę. Przykładowo - masz max limit połączeń do bazy w liczbie 100 i co... 100 osób wejdzie na stronę (z czego 30 pójdzie sobie gdzieś ale nie zamknie przeglądarki) i lipa... nikt więcej nie "odpyta" serwera bo wywali błędem :)

Jeżeli martwi Cię wydajność to przeczytaj sobie:
https://mysqlserverteam.com/mysql-connection-handling-and-scaling/

Zacytuję kawałek:
"A short lived connection is a connection that is only open for a short period of time. This is typically the case for PHP applications, the client opens a connection, executes a simple query, and then closes the connection. Due to its architecture, MySQL is really good at accepting new connections at a high speed, up to 80.000 connects/disconnects per second as shown in Figure 4 below."

0

singletona zrob

1 użytkowników online, w tym zalogowanych: 0, gości: 1