Article View: pl.comp.programming
Article #205517Re: jsp vs php
From: M.M.
Date: Tue, 07 May 2013 16:02
Date: Tue, 07 May 2013 16:02
90 lines
5919 bytes
5919 bytes
W dniu wtorek, 7 maja 2013 09:21:55 UTC+2 użytkownik R.e.m.e.K napisał: > Bazy danych sa srubowane pod wzgledem wydajnosci, bo to jeden z priorytetow. > Mechanizmow temu sprzyjajacych maja wiele, w koncu to temat stary jak cale > IT, ale nie sadze by byla mozliwosc grzebania w tak niskopoziomowych > parametrach jak polozenie stron w sektorach dysku. Ok, jak nie ma to nie ma. Chociaz... troche nie ufam, poszukam jeszcze :) > Ale jesli plik baza bedzie mial kilkadziesiat GB, to podejrzewam, ze nawet > najlepszy system plikow nie zagwarantuje, ze znajdzie taki obszar w jednym > kawalku. No tak, ale w jednym kawalku nie musi byc. > Optymalizator jest wbudowany w engine serwera i sie korzysta z niego > wykonujac zapytania. Mozna wplynac na jego decyzje wymuszajac mu plan > zapytania, ale w dobrych serwerach wiecej takim wymuszeniem mozna zaszkodzic > niz pomoc, w gorszych (ze slabym optymalizatorem) mozna poprawic wiele. Brzmi logicznie, ale nie ma cudow. Jesli tabela jest ogromna, to w pesymistycznym przypadku DB musi nastawic glowice tyle razy ile jest rekordow do odczytania. > Ale jesli nie bedzie read-only to stopien komplikacji wlasnego rozwiazania > rosnie ogromnie. To zalezy od szczegolow problemu. Ostatnio duzo sie bawilem rozwiazaniami opartymi na SQL i CSV. Az tak bardzo trudno nie jest. Wieksze problemy mialem gdy byly nieoczekiwane zmiany w projekcie. > Do tego mozna takze uzyc serwera SQL. Raz na dobe zrobic nim widok i go > zmaterializowac (materialized view). Efekt bedzie podobny, a roboty ZERO. Zgadza sie. Przy okazji zyskuje sie transakcje, prosta mozliwosc zrobienia kopii - niby sa zalety. Ale dane w takich plikach sa nadmiarowe, zawsze mozna je odtworzyc - czyli transakcji nie potrzebuje. W kopii zapasowej takie dane tez jak kula u nogi. Po plikach bazy danych trudno iterowac... Masz racje ze mozna, ale w takim przypadku baza to niepotrzebna warstwa. Lepiej takie dane zrzucic do pliku binarnego, potem w golym C po takim pliku iterowac. Struktury z C mapuja sie bez zadnych konwersji do danych w pliku binarnym - wydajnosc i wygoda w jednym. > E, czemu tylko jedna kolumne? Indeks moze obejmowac kilka kolumn. Hmmm, ale i tak to chyba nie ma nic wspólnego z jakąś metodą na układanie potrzebnych danych obok siebie. > Wiedziec a to zrobic to przepasc liczona w setkach roboczogodzin ;-) Samo sie nie zrobi, pytanie czy warto :) > No i dochodzimy do meritum. Jesli zapytania wykonuja sie po kilkadziesiat > sekund to (zaznacz wlasciwe pola): > - masz spieprzona strukture logiczna bazy O tej samej bazie mozna powiedziec ze jest optymala i spieprzona. Moja jest optymalizowana na elastycznosc, na to zeby latwo mozna bylo cos zmienic, cos dodac. Mozna zrobic tak jak wyzej proponowales, ze tabel sa odpowiednikami plikow na ktorych to dziala szybciej. Tyle ze wtedy taka baza wydaje sie jak kula u nogi. > - nie korzystasz prawidlowo z indeksow Raczej tak. > - piszesz zle zapytania SQL Nie popelniam wielkich bledow, ale nie sprawdzalem jeszcze czy szybciej zadziala zlaczenie join, czy moze jakies sprytne podzapytanie. > - uzywasz produktu serweropodobnego Ostatnio uzywam dwoch: SQLite i Postresql > - wyciagasz w wyniku miliony rekordow wraz z polami typu blob i podsystem > dyskowy nie wyrabia Blob nie uzywam. Ilosc rekordow rozna, rzadko powyzej 100tys, ale zdarza sie. > Ale wlasnie, czy aby na pewno sa one przemyslane? Czy struktura jest > znormalizowana? A jesli tak to moze zbyt znormalizowana? Jak na wydajnosc to jest zbyt znormalizowana, jak na zarzadzanie, to jest znormalizowana w sam raz - jesli mozna tak powiedziec :) > W praktyce dla zwiekszenia wydajnosci stosuje sie czesto denormalizacje > oraz celowa redundancje danych. Mysle, ze struktura bazy danych moze byc > tu kluczowa dla wydajnosci, mozna nia bardzo duzo poprawic oraz ...zepsuc. Z tego co widze, to mozna w ten sposob duzo poprawic. Pytanie tylko, czy robienie tabel z redundantnymi danymi nie jest gorze niz zewnetrzne pliki. Pozdrawiam
Technical Details
Message-ID:
<3e1ecd1f-4802-4c3c-8423-e007e32bac9f@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin1!goblin.stu.neva.ru!17no5121108wie.0!news-out.google.com!hg5ni78691wib.1!nntp.google.com!17no5121105wie.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> <6f61945a-2435-4f60-bd44-29994fd65fcd@googlegroups.com> <51882061$0$1222$65785112@news.neostrada.pl> <59d943be-a200-4676-a1c8-c5153b016c46@googlegroups.com> <5188ab94$0$1252$65785112@news.neostrada.pl>Show Full Headers
Complete Article Headers
X-Received: by 10.180.21.226 with SMTP id y2mr851121wie.5.1367942531736; Tue, 07 May 2013 09:02:11 -0700 (PDT) X-Received: by 10.180.208.114 with SMTP id md18mr266398wic.9.1367942531719; Tue, 07 May 2013 09:02:11 -0700 (PDT) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin1!goblin.stu.neva.ru!17no5121108wie.0!news-out.google.com!hg5ni78691wib.1!nntp.google.com!17no5121105wie.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.programming Date: Tue, 7 May 2013 09:02:11 -0700 (PDT) In-Reply-To: <5188ab94$0$1252$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> <6f61945a-2435-4f60-bd44-29994fd65fcd@googlegroups.com> <51882061$0$1222$65785112@news.neostrada.pl> <59d943be-a200-4676-a1c8-c5153b016c46@googlegroups.com> <5188ab94$0$1252$65785112@news.neostrada.pl> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <3e1ecd1f-4802-4c3c-8423-e007e32bac9f@googlegroups.com> Subject: Re: jsp vs php From: "M.M." <mmarszik@gmail.com> Injection-Date: Tue, 07 May 2013 16:02:11 +0000 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit