![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 1 Dołączył: 16.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Ostatnio zabrałem się za pisanie klasy do obsługi połączeń MySQL i poszukując inspiracji w sieci znalazłem dosyć ciekawą klasę do obsługi baz w której możemy wybierać typ połączenia PDO, MYSQLi lub MYSQL, tego w sumie potrzebowałem. Napiszcie co myślicie o tej klasie, jest waszym zdaniem dobrze napisana? Czy może znacie jakieś inne gotowe sprawdzone klasy?
LINK DO KLASY Ten post edytował adrix88 23.06.2011, 23:36:37 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Od razu chciałbym uprzedzić że wszystko co jest napisane poniżej oparte jest o - niestety - bardzo małą wiedzę z zakresu przechowywania i przetwarzania danych, tak więc całkiem możliwym jest, że trochę bzdur może się tutaj znaleźć.
Przy okazji zaznaczę jeszcze raz, że ani ja, ani thek, ani ktokolwiek inny w tym wątku nie mamy najmniejszego pojęcia jakie dokładnie dane przechowujesz, co potrzebujesz z nimi robić,i jak często, czy dałoby się to jakoś zoptymalizować itd. Dlatego też nie padnie tutaj stwierdzenie, że "masz źle" bo nie mamy pojęcia czy to co masz jest dobre czy złe. Konieczne byłoby wykonanie testów żeby to potwierdzić albo ktoś kto już w przeszłości zmagał się z czymś podobnym i z doświadczenia może się wypowiedzieć. (IMG:style_emoticons/default/wink.gif) Jak generalnie dobrze zauważyłeś podzielenie tego na mniejsze tabele, gdzie każda odpowiedzialna jest za reprezentowanie jakiś poszczególnych "elementów" tej całości niesie za sobą konieczność dodatkowej pracy dla silnika bazy danych. Jednakże może - bo jak już wspomniałem nie wiemy co Ty tam dokładnie robisz - również odciążyć go z całej masy roboty związanej ze "skakaniem" po dysku. Pamiętaj że dane zapisane są niejako ciurkiem i komputer nie może tak od odczytać sobie zawartości kolumny "passftp". Musi najpierw dojść do tego który fragment z serii zer i jedynek to wartość tej kolumny. Niestety w tej tabeli większość kolumn ma zmienną długość a więc konieczne będzie odczytanie długości wszystkich kolumn. Innymi słowy zakładając, że dane są zapisane na dysku w takiej kolejności jak w strukturze tabeli: 1. Ustawiamy się na początku rekordu. 2. Skaczemy o 16 bajtów (4 x INT) 3. Odczytujemy długość kolumny "name" 4. Skaczemy o długość kolumny "name" 5. Odczytujemy długość kolumny "game" 6. Skaczemy o długość kolumny "game" ... 91. Skaczemy o długość kolumny "password" 92. Odczytujemy długość kolumny "passftp" 93. W końcu odczytujemy zawartość kolumny "passftp" Jak widzisz trochę operacji trzeba wykonać, i tak dla każdego jednego rekordu z osobna. Trzeba pamiętać o tym, że operacje dyskowe są często tym wąskim gardłem w prędkości działania aplikacji. Nie wiem czy MySQL działa w dokładnie taki sposób - fajnie jakby ktoś bardziej obeznany mógł się wypowiedzieć - ale stawiam, że jednak będzie to coś w ten deseń. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.10.2025 - 04:37 |