Article View: pl.comp.programming
Article #205510Re: jsp vs php
From: M.M.
Date: Mon, 06 May 2013 19:55
Date: Mon, 06 May 2013 19:55
80 lines
5502 bytes
5502 bytes
W dniu poniedziałek, 6 maja 2013 08:33:21 UTC+2 użytkownik R.e.m.e.K napisał: > A co z fragmentacja dysku? Z tego co słyszałem, problem fragmentacji dysku na dobrych systemach plików nie występuje przy spełnieniu prostego warunku: dysk nie może być zapełniony, musi na nim być zawsze pewien zapas wolnego miejsca. > Co Ci da to, ze dane beda "obok" siebie w pliku Nie chodzi o to co da, ale co zlikwiduje. Zlikwiduje zbędne naprowadzania głowicy. Będzie odczyt sekwencyjny zamiast random. > skoro beda na dwoch koncach dysku? O ile się nie mylę, na dobrych systemach plików tak się dzieje bardzo rzadko. > Pomijajac juz taki detal, ze nie ma zadnego mechanizmu ukladania > danych w tabelach wg swoich widzimisie. Skoro znasz tak dobrze silniki bazodanowe, to wierzę, że takiego mechanizmu żaden silnik nie oferuje. Ja je znam bardzo pobieżnie... umiem założyć tabelę, indeksy, zrobić zapytanie, ewentualnie umiem dodać jakiś triger. Myślałem że może są jakieś zaawansowane optymalizatory. > Tym zarzadza serwer i nie masz do tego dostepu. Nie istnieje takie > pojecie jak kolejnosc ulozenia danych w pliku bazy danych. Kilka dni temu też tak powiedziałem, kumpel na to mi odrzekł: znasz góra 10% możliwości dwóch baz, lepiej się upewnij. Rozumiem że Ty znasz bazy danych w 100% i mogę na tej informacji polegać? > Z pewnoscia moge zaryzykowac stwierdzenie, ze chocbys stanal na glowie nie > jestes w stanie zrobic nic wydajniejszego niz wspolczesne silniki DB. Nie mogę, a jakimś dziwnym trafem kilka razy w swoim życiu zrobiłem. Kilka ostatnich programów które napisałem działają setki razy szybciej na plikach csv niż na bazach postgres i sqlite. Działają dlatego szybciej, że w jednym plik csv mam dokładnie to, co z bazy muszę wyciągać skomplikowanym zapytaniem. Zrób eksperyment. Załóż bazę która zawiera 5-7 tabel dużych tabel. Połącz wszystkie tabele jakimiś relacjami. Napisz zapytanie do wyciągania danych. Zmierz czas zapytania. Potem zapisz wyniki zapytania w pliku, w postaci liniowych rekordów. Ostatecznie zmierz czas odczytania tego pliku ( w jakimś dobrym języku, może Java, albo C++). Zobacz jakie będą różnice w czasie. No ale ja nie znam perfekcyjnie wszystkich możliwości jakie oferują bazy... może na bazach też da się uzyskać taki efekt... może coś robię źle... Nie wiem, ja raczej pytałem w tym poście o radę. > Powiem wiecej, wydaje mi sie, ze trwonisz czas na nieistotnych rzeczach, > bazy danych dzialaja z setkami milionow rekordow, ze zlaczeniami i innymi > "utrudnieniami" i daja rade. Dają radę, tak jak mogą. Masz setki milionów rekordów. Wśród nich masz tysiąc rozrzuconych losowo przeznaczonych do wyciągnięcia. Jeśli rekordy nie są w cache, to: 1) jeśli nie są zaindeksowane - trzeba przejrzeć setki milionów, aby znaleźć ten tysiac; 2) jeśli są zaineksowane - w pesymistycznym przypadku trzeba naprowadzić tysiąc razy głowicę + jeszcze trochę naprowadzeń na odczyt indeksów. A gdy ten tysiąc rekordów leży w liniowym pliku, albo są w pamięci RAM, bo programista napisał specjalistyczny algorytm cache, to dane są w ułamku sekundy natychmiast. > Na 90% zrobisz w swoim sofcie wiecej waskich gardel niz to, ktore > dostaniesz od serwera SQL. Nigdy nie twierdziłem że wyręczanie serwera SQL to łatwe zadanie i pierwsza wersja wyrzeźbiona ręcznie będzie na pewno szybsza. Każdy proces optymalizacji jest trudny i daje wiele możliwości na pogorszenie. > Oczywiscie serwerowi tez > mozesz pomoc lub podlozyc noge projektujac dobra lub zla strukture tabel. No właśnie pytałem czy bazy danych oferują coś do układania potrzebnych danych obok siebie :) Pozdrawiam
Technical Details
Message-ID:
<6f61945a-2435-4f60-bd44-29994fd65fcd@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!news.nask.org.pl!newsfeed.pionier.net.pl!news.glorb.com!m7no2887457qam.0!news-out.google.com!y6ni0qax.0!nntp.google.com!m7no2887446qam.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mailReferences:
<cfa1e1b8-b40c-45e1-a091-7e7a1f53c751@googlegroups.com> <klqg29$o16$1@news.mm.pl> <029812f4-fc45-4e87-86d9-716b915ec3eb@googlegroups.com> <klsle1$ogf$1@news.mm.pl> <2c18b639-c23f-4b76-9e8e-a02eb1f6ec82@googlegroups.com> <km4nal$kkp$1@news.mm.pl> <4485a9d5-1bcb-43f0-b0a1-d40637de7a4c@googlegroups.com> <db2da6e3-badf-46d1-b0b5-3bead35d039e@googlegroups.com> <e29c6d46-5143-4e90-b0d7-5322767a06e8@googlegroups.com> <51874eb2$0$1250$65785112@news.neostrada.pl>Show Full Headers
Complete Article Headers
X-Received: by 10.224.215.194 with SMTP id hf2mr37090223qab.0.1367870109494; Mon, 06 May 2013 12:55:09 -0700 (PDT) X-Received: by 10.49.12.67 with SMTP id w3mr55746qeb.27.1367870109452; Mon, 06 May 2013 12:55:09 -0700 (PDT) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask.pl!news.nask.org.pl!newsfeed.pionier.net.pl!news.glorb.com!m7no2887457qam.0!news-out.google.com!y6ni0qax.0!nntp.google.com!m7no2887446qam.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.programming Date: Mon, 6 May 2013 12:55:09 -0700 (PDT) In-Reply-To: <51874eb2$0$1250$65785112@news.neostrada.pl> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=213.195.164.27; posting-account=xjvq9QoAAAATMPC2X3btlHd_LkaJo_rj NNTP-Posting-Host: 213.195.164.27 References: <cfa1e1b8-b40c-45e1-a091-7e7a1f53c751@googlegroups.com> <klqg29$o16$1@news.mm.pl> <029812f4-fc45-4e87-86d9-716b915ec3eb@googlegroups.com> <klsle1$ogf$1@news.mm.pl> <2c18b639-c23f-4b76-9e8e-a02eb1f6ec82@googlegroups.com> <km4nal$kkp$1@news.mm.pl> <4485a9d5-1bcb-43f0-b0a1-d40637de7a4c@googlegroups.com> <db2da6e3-badf-46d1-b0b5-3bead35d039e@googlegroups.com> <e29c6d46-5143-4e90-b0d7-5322767a06e8@googlegroups.com> <51874eb2$0$1250$65785112@news.neostrada.pl> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <6f61945a-2435-4f60-bd44-29994fd65fcd@googlegroups.com> Subject: Re: jsp vs php From: "M.M." <mmarszik@gmail.com> Injection-Date: Mon, 06 May 2013 19:55:09 +0000 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit