• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Przetwarzać dane w PHP czy inicjować więcej zapytań do bazy

Object Storage Arubacloud
–1 głos
566 wizyt
pytanie zadane 21 czerwca 2016 w PHP przez fmc Początkujący (260 p.)
Mam problem natury teoretycznej związanej z efektywnością systemu. Potrzebuję wyciągnąć z bazy (MySQL) trochę różnych danych, przeliczyć je i następnie zaprezentować je na stronie. I tutaj mogę zastosować dwa podejścia:

1. Wygenerować kilkanaście zapytań do bazy i bezpośrednio z niej wyciągać dane, które następnie będą prezentowane na stronie.

2. Pobrać jedną dużą tablicę asocjacyjną i następnie z niej w oparciu o PHP wyciągać dane, których potrzebuję do prezentacji.

W literaturze natknąłem się na myśl, że jak najmniej powinno się obciążać serwer bazodanowy. Tak, więc trafniejsze wydaje się korzystanie z drugiej metody. Poproszę jednak bardziej doświadczone osoby o opinie albo wskazówkę, gdzie można więcej na ten temat przeczytać.

1 odpowiedź

0 głosów
odpowiedź 21 czerwca 2016 przez event15 Szeryf (93,790 p.)
A transakcje PDO?
komentarz 21 czerwca 2016 przez fmc Początkujący (260 p.)
Z mojego stanu wiedzy PDO to jest uniwersalny interfejs do łączenia z bazami danych. Użycie go nie zmieni liczby generowanych zapytań. Obciążenie bazy zostanie wg mnie takie samo. Tak, więc co lepiej korzystać z bazy danych czy wykorzystywać PHP.
komentarz 21 czerwca 2016 przez event15 Szeryf (93,790 p.)
Odniosłeś sie do PDO, nie odniosłeś się do transakcji.  Wykorzystując transakcje, możesz commitowac wiele zapytań, nawet setki. Dopóki tego nie wyświesz w stronę bazy to transakcja będzie wisieć. Jeśli będzie wisieć i nie zostanie obsłużona - nie wygeneruje żadnego obciążenia. Jeśli obsłużysz i wyślesz ją do bazy to będziesz mieć w requestach tylko jedno odwołanie a nie pierdyliard.

Oczywiście za leniwą dupę masz, zeby samodzielnie sprawdzić, bo se jasnie pan uznał, że jeśli zobaczy "PDO" to się wymądrzy.
komentarz 21 czerwca 2016 przez event15 Szeryf (93,790 p.)
Wystarczy obsługiwać transakcje. Jeśli jeszcze bardziej zalezy Ci na wydajności aplikacji, zainwestuj w redisa postawionego na osobnym dockerze, który z endpointa napisanego w LUA dla nginx będzie generować dane otrzymywane nawet w trybie live - nie będzie problemu nawet dla 5000 zapytań na sekundę. Baza nie ucierpi, bo w cronie możesz zaprogramować jej agregację co np. 2h z logów albo z redisa.
komentarz 21 czerwca 2016 przez fmc Początkujący (260 p.)
Dzięki za odpowiedzi i czas. Nie mam takiej szerokiej wiedzy, żeby wykorzystywać transakcje PDO a już generowanie 5000 zapytań na sekundę to nie jest mój świat. Moje pytanie bardziej dotyczy nawyku. W tej stronie, którą piszę nie będzie potrzebna taka wydajność o której Ty wspominasz. Z Twoich odpowiedzi rozumiem, że lepiej wykorzystać transakcje PDO, czyli łączyć się z bazą niż pobrać dane raz i "obrabiać" w PHP.
komentarz 21 czerwca 2016 przez event15 Szeryf (93,790 p.)
Nie widzę skryptu, ani bazy - trudno jest prorokować.

https://www.html5andbeyond.com/using-database-transactions-pdo-code-example/

http://php.net/manual/en/pdo.begintransaction.php

Także możesz sobie zrobić w jednym miejscu wiele zapytań CRUD i za pomocą transakcji je przepchać. Będzie to szybsze - ale tylko zależnie od implementacji.

Podobne pytania

+2 głosów
1 odpowiedź 310 wizyt
0 głosów
1 odpowiedź 1,372 wizyt
pytanie zadane 6 maja 2018 w PHP przez Damian Prymus Początkujący (380 p.)
0 głosów
3 odpowiedzi 687 wizyt
pytanie zadane 18 sierpnia 2016 w PHP przez niezalogowany

92,624 zapytań

141,482 odpowiedzi

319,824 komentarzy

62,006 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...