Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
przeniesienie selectow z php do procedury mysql
#1
Czesc.
Dzis dolaczylem do grona fomumowiczowSmile
stwierdzam ze jest to kopalnia wiedzy i na pewno bede tu czesto zagladalSmile
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
Odpowiedz
#2
Szybkie pytanie: co chcesz tym osiagnac?
Odpowiedz
#3
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
Odpowiedz
#4
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
Odpowiedz
#5
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
Odpowiedz
#6
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 Smile
Odpowiedz
#7
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.Smile ale dlatego ze dostalem schedę po webmajstrze, który sie zwolnil. do tej pory tylko w oraclu rzezbilem.
spotkanie z inna baza jest jak zderzenie ze scianaSmile


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.
Odpowiedz
#8
Zadym teleportem pro nie sciagniesz plikow z kodem PHP Smile
Teleport pro moze Ci co najwyzej zassac pliki html wygenerowane przez php + assets jak obrazki, js, css itd Smile
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 Smile
Odpowiedz
#9
Zadym teleportem pro nie sciagniesz plikow z kodem PHP Smile
??? 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?
Odpowiedz
#10
(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.
Odpowiedz


Podobne wątki…
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Jak sprawdzić czy adres www znajduje sie w bazie mysql? jarekcda 8 9,035 13-05-2017, 01:02
Ostatni post: miketodson255
  Optymalizacja MySQL-a tomek_00 1 3,929 01-09-2013, 13:31
Ostatni post: hieroshima
  [MySQL] Struktura bazy dla słownika msx83 2 3,926 24-08-2013, 16:26
Ostatni post: msx83
  Komunikacja PHP z MySQL na serwerze pawstrze 5 6,453 16-07-2013, 15:58
Ostatni post: Engine
  [MySQL] wyszukiwarka problem darlowiak 3 3,560 13-06-2013, 12:58
Ostatni post: darlowiak

Skocz do:


Użytkownicy przeglądający ten wątek: 2 gości
Sponsorzy i przyjaciele
SeoHost.pl