![]() |
przeniesienie selectow z php do procedury mysql - Wersja do druku +- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl) +-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www) +--- Dział: Programowanie, Bazy danych (https://www.webmastertalk.pl/forum-programowanie-bazy-danych) +--- Wątek: przeniesienie selectow z php do procedury mysql (/thread-przeniesienie-selectow-z-php-do-procedury-mysql) Strony:
1
2
|
przeniesienie selectow z php do procedury mysql - arturaspl - 12-01-2011 Czesc. Dzis dolaczylem do grona fomumowiczow ![]() stwierdzam ze jest to kopalnia wiedzy i na pewno bede tu czesto zagladal ![]() Prosze o pomoc w rozwiazaniu pewnego problemu. Chcialbym wszystkie operacje bazodanowe (select, insert, update, delete) przeniesc z plikow php do procedur/funkcji mysql-a. nie wiem/nie mam pojecia jak zwrocic selecta z funkcji/procedury bazodanowej jako parametr out do php . czyli np. funkcjia lub procedura bazodanowa wysle do php kod gotowej strony www do wyswietlenia. mysql nie supportuje tablic(array) - skucha bo z nich wlasnie chcialem skorzystac aby przekazac x wierszy do php. Macie moze jakis pomysl jak to zrobic? pozdrawiam Artur RE: przeniesienie selectow z php do procedury mysql - cshamoh - 12-01-2011 Szybkie pytanie: co chcesz tym osiagnac? RE: przeniesienie selectow z php do procedury mysql - arturaspl - 12-01-2011 Szybkie pytanie: co chcesz tym osiagnac? wg szefa - 1. ukrycie logiki bazy przed swiatem. 2. zwiekszenie bezpieczenstwa danych. wg mnie szybkosc. - aby wyswietlic np. liste faktur musze wykonac 15 selectow aby doczytac parametry wg. kategorii fakrury,kat. usera/ kontekstu itp. a przesyl danych spowalnia budowanie strony. te same selecty wykonane w procedurze na bazie dzialaja szybciej niz doczytywanie parametrow. artur RE: przeniesienie selectow z php do procedury mysql - cshamoh - 12-01-2011 Moim skromnym zdaniem procedury skladowe zostaly pomyslane do zupelnie czego innego - na bank nie do generowania kodu html. Poza tym nie widze tutaj zadngo zysku performance. Musisz wywolac procedure, ktore wywola query, ktore zwroci dane, ktore to zostana zamienione na kod html i wyslane do php najprawdopodobniej w postaci pojedynczego rekordu. Wczesna optymalizacja jest z reguly zrodlem wiekszego zla niz pozna (oczywiscie przy zachowaniu dobrych praktyk). Zostaw bazie to co bazowe a phpowi to co jego (czyli generowanie html). Czy juz macie problemy z perfomance czy martwici sie na zapas? Zanim wdasz sie w az takie niuanse, jest mnostwo innych mozliwosci optymalizacji. Jesli chodzi o ukrycie logiki przed swiatem - czy kazdy ma dostep do struktury bazy i kodu php? Jesli chodzi o bezpieczenstwo danych - na bank nie robi sie tego za pomoca procedur (no chyba, ze chodzi o jakies szyfrowanie danych w bazie, ale do tego uzyl bym bardziej trigerow post insert/update). Podsumowujac - strasznie dziwny pomysl - a widzialem juz wiele aplikacji od amatorskich do enterprise. Pzdr RE: przeniesienie selectow z php do procedury mysql - arturaspl - 12-01-2011 Moim skromnym zdaniem procedury skladowe zostaly pomyslane do zupelnie czego innego - na bank nie do generowania kodu html. w oraclowym narzedziu modplsql - czy jakos tak generowaniem kodu strony hmtl zajmuja sie wlasnie produry bazodanowe. ciekawe rozwiazanie. Czy juz macie problemy z perfomance czy martwici sie na zapas? niestety problemy wystepuja. server obsluguje ponad 200 userow z roznych firm - m.in stad ilosc doczytywanych parametrow. Jesli chodzi o ukrycie logiki przed swiatem - czy kazdy ma dostep do struktury bazy i kodu php? do struktury nie. ale do kodu php tak. wystarczy teleportpro - istnieje grosba spreparowania danych, lub podszycia sie pod usera z innej firmy. Jesli chodzi o bezpieczenstwo danych - na bank nie robi sie tego za pomoca procedur (no chyba, ze chodzi o jakies szyfrowanie danych w bazie, ale do tego uzyl bym bardziej trigerow post insert/update). triggerowanie jest zaimplementowane, ale raporty np. kasowe , czy kosztorysy nie chodza po archiwach tylko po bierzacych danych. Podsumowujac - strasznie dziwny pomysl - a widzialem juz wiele aplikacji od amatorskich do enterprise. a orientujesz sie posgresql supportuje tablice(array)? moze to rozwiaze problem - a przynajmniej ich czesc. artur RE: przeniesienie selectow z php do procedury mysql - cshamoh - 12-01-2011 Wiem, ze z oracle sa narzedzia do generowania html, ale one powstaly wieki temu kiedy nie mialy jeszcze konkurencji. nawet w nich cos kiedys pisalem, ale nie wyobrazam sobie robic tego teraz. Nie rozumiem o co chodzi z tym teleport pro w tym przypadku i dlaczego kazdy ma dostep do kodu php? To jest app instalowany lokalnie? Moze warto w takim przypadku uzyc "ionCube PHP Encoder"? Poza tym jesli istnieje grozba spreparowania danych i podszycia sie pod innego usera to znaczy, ze security aplikacji jest do dupy. Nie znam specyfiki systemu, ale jezeli ilosc outputowanych danych nie idzie w 1000 rekorodow to 200 userow dzialajacych jednoczesnie jest do ogarniecia na kazdym wspolczsnym desktop nie mowiac o serwerze. No chyba ze aplikacja jest na shared hostingu. Wydaje mi sie dziwne, ze macie problemy z performance przy takiej liczie userow. Optymalizowaliscie querasy i baze? Co z cachowaniem bazy? Co prekompilatorami jak xcache? W Postgre jestem zielony - wiec nie pomoge ![]() RE: przeniesienie selectow z php do procedury mysql - arturaspl - 12-01-2011 Nie rozumiem o co chodzi z tym teleport pro w tym przypadku i dlaczego kazdy ma dostep do kodu php? To jest app instalowany lokalnie? Moze warto w takim przypadku uzyc "ionCube PHP Encoder"? przy pomocy teleportpro mozesz sciagnac na swoj lokalny dysk wszystkie pliki z kazdego servisu www. pozniej wystarczy tylko odpalic to lokalnie i jest gotowe narzedzie do grzebania w cudzych danych. Poza tym jesli istnieje grozba spreparowania danych i podszycia sie pod innego usera to znaczy, ze security aplikacji jest do dupy. wydaje sie bys standardowa. sa cookis, logowania sesji, prawa dostepu w aplikacji itp. ale cala logika systemu jest zaszyta w pliczkach php. ktore po sciagnieciu z serwera mozna sobie dowolnie edytowac. gdyby udalo sie oparcje na bazie zaszyc w procedurach zniknely by nazwy tabel z pliczkow. co mogloby zwiekszyc bezpieczenstwo danych. Nie znam specyfiki systemu, ale jezeli ilosc outputowanych danych nie idzie w 1000 rekorodow to 200 userow dzialajacych jednoczesnie jest do ogarniecia na kazdym wspolczsnym desktop nie mowiac o serwerze. prawde mowiac ja tez nie znam specyfiki. ![]() spotkanie z inna baza jest jak zderzenie ze sciana ![]() No chyba ze aplikacja jest na shared hostingu. Wydaje mi sie dziwne, ze macie problemy z performance przy takiej liczie userow. Optymalizowaliscie querasy i baze? Co z cachowaniem bazy? Co prekompilatorami jak xcache? nie wiem, nie zajmowalem sie tym - jeszcze. RE: przeniesienie selectow z php do procedury mysql - cshamoh - 13-01-2011 Zadym teleportem pro nie sciagniesz plikow z kodem PHP ![]() Teleport pro moze Ci co najwyzej zassac pliki html wygenerowane przez php + assets jak obrazki, js, css itd ![]() Ja zanim zaczalbym pisac procedury przejmujace zadania php zrobilbym tak: 1) Profiling aplikacji - Wlaczyl logowanie querasow z czasami wykonania per strona i logowanie czasow generowania stron 2) Wylapal bym te najdluzsze querasy 3) Sprobowal je zoptymalizowac 4) Jesli to za malo EXPLAINem kazda z nich i ztunowal bym baze jakimis indexami w tym momencie jestem prawie pewien, ze aplikacja dostanie niesamowitego oddechu. Jesli ciagle malo 5) Powlaczal cachowanie Jesli to nic nie da to albo co jest walniete z systemem albo trzeba nowy serwer ![]() RE: przeniesienie selectow z php do procedury mysql - arturaspl - 13-01-2011 Zadym teleportem pro nie sciagniesz plikow z kodem PHP ![]() ??? dlaczego. nie lapie, przeciez lokalizacja tych plikow jest taka sama jak html-i? dzieki za pozostale porady. troszke to potrwa zanim bede mial jakies wyniki. ale moze byc to prozna praca - znajac szefa. a masz moze gdzies na wierzchu jakis przyklad takiej procedurki + obsluga w php? RE: przeniesienie selectow z php do procedury mysql - trak - 13-01-2011 (13-01-2011, 04:26)arturaspl napisał(a): ??? dlaczego. nie lapie, przeciez lokalizacja tych plikow jest taka sama jak html-i?Bo serwer www parsuje kod php i zwraca tylko wynik, czyli html. Bez dostępu do ftp nie pobierzesz plików php. |