Portál AbcLinuxu, 15. května 2025 00:00

Dotaz: Je rychlejší kontrolovat zapisovaná data pomocí PL/pgSQL nebo přímo v aplikaci?

12.9.2012 22:56 vasek
Je rychlejší kontrolovat zapisovaná data pomocí PL/pgSQL nebo přímo v aplikaci?
Přečteno: 412×
Odpovědět | Admin
Ahoj, mám v postgresu tabulku s několika sloupci. V koncové aplikaci (napsané v PHP) vkládám do tabulky hodnoty. Vytvořil jsem si pár funkcí v PHP pro kontrolu oprávnění a podle definice oprávnění pro aktuálně přihlášeného uživatele v mé aplikaci se před vložením dat do tabulky kontroluje, zda k tomu má uživatel oprávnění. Rád bych si zjednodušil aplikační kód a tak mě napadlo nechat tuto kontrolu na postgresql a to tak, že by se spouštěl nějaký trigger (nebo po dotazu nějaká procedura), který by podle definice oprávnění buď povolil nebo zakázal provedení dotazu. Použil bych na to PL/pgSQL. Ty definice oprávnění mohou být docela komplexní (např. povoleno vkládat něco, co odpovídá několika regulárním výrazům apod.). Je rozumné kontrolu oprávnění přenechat databázi nebo to mám nechat na aplikaci? Zajímá mě to hlavně z pohledu výkonnosti obou řešení.
příklad INSERTU:
INSERT INTO tabulka(sloupec) VALUES ('hodnota');
příklad oprávnění: (sloupec>100&sloupec<500)|sloupec=50
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

okbob avatar 12.9.2012 23:28 okbob | skóre: 30 | blog: systemakuv_blog | Benešov
Rozbalit Rozbalit vše Re: Je rychlejší kontrolovat zapisovaná data pomocí PL/pgSQL nebo přímo v aplikaci?
Odpovědět | | Sbalit | Link | Blokovat | Admin
PL/pgSQL je zhruba tak rychlé jako PHP - přičemž, když se použijí reguláry, tak je to stejně rychlé, bo stejně jako v PHP, jsou reguláry implementované v C.

Co je důležité - budete pro kontrolu přístupu potřebovat další SQL? Pak může být rychlejší PL/pgSQL - jelikož se provede pouze jeden DB call - jinak to může vyjít nastejno.
13.9.2012 14:11 jekub
Rozbalit Rozbalit vše Re: Je rychlejší kontrolovat zapisovaná data pomocí PL/pgSQL nebo přímo v aplikaci?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pokud je to možné, vždy volím omezeni v databázi. Nikdy nevíte, zda k datům bude přistupovat pouze vaše aplikace.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.