PostgreSQL 8.4 Beta 1

Data: 18 kwietnia, 2009

Pierwsza beta najbardziej zaawansowanej bazy danych SQL na licencji opensource, w wersji 8.4 została właśnie wydana przez deweloperów PostgreSQL. Po czternastu miesiącach intensywnych prac, wersja 8.4-b1 jest gotowa do testów.

Wersja 8.4 wnosi setki nowych usprawnień oraz rozszerzeń.
Najważniejsze z nich, to:

  • Window functions,
  • CTE (Common table expressions), WITH, WITH RECURSIVE,
  • domyślne wartości parametrów w funkcjach,
  • wielowątkowe odtwarzanie bazy danych,
  • poprawiona wydajność indeksów hash,
  • znacznie usprawniona implementacja pod-zapytań z wykorzystaniem [NOT] EXISTS,
  • znacznie udoskonalony „warm standby”,
  • automatyczny FSM,
  • bardziej inteligentny „odkurzacz” postgresowy- vacuum,
  • bardzo mocno poprawiony psql, teraz z możliwością edycji funkcji (ef)
  • Nowe dodatki: pg_stat_statements, auto_explain, citext, btree_gin.

Więcej informacji pod adresem (w jęz. angielskim) programu beta.

Szczegółowa lista zmian: (w jęz. angielskim) tu.

Źródełka do pobrania spod tego adresu

Będą dostępne także instalatory pod Microsoft Windows, więcej informacji na stronie programu beta.

Ze swojej strony, zapraszam do testowania. Wszelkie problemy, bądź to instalacyjne, bądź błędy proszę zgłaszać na listach dyskusyjnych, wykaz tych list znajduje się tu.

Kilka przykładów:

Niusa podesłał Grzegorz Jaśkiewicz

Podobne wpisy

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone


  1. maciek pisze:

    Czy aby na pewno najbardziej zaawansowana? Na pewno to dobry wyrób, ale otwarte są m.in. tak popularne programy jak mysql czy sqlite, oraz całe multum innych nowych rdbmsów (HSQLDB, H2… )

      1. Mieszko Kaczmarczyk pisze:

        @WoW:
        Najlepiej od razu się pobijcie! Solówa w Realu (albo w Tesco/Biedronce/itd.)
        .
        Juz ponad tydzień nie było lamerskich wojen.

    1. wiktor pisze:

      Firebird (Interbase).
      Jeśli już mowa o zaawansowaniu baz, to ta ma od dawna możliwości, których powyżej wymienione się dorobić nie mogą do dziś.
      Z opensource'u do poważnych zastosowań najlepsza.

      1. trasz pisze:

        @wiktor: Podaj jakis przyklad.

        1. jacek2v pisze:

          @trasz

          Apropo możliwości Interbase/firebird. To jedna z niewielu baz na świecie, która ma tzw. optymistyczne lokowanie. Jakieś parę lat temu jeszcze nie wielu programistów z którymi rozmawiałem nawet nie wiedzieli o co chodzi. Żyli w koszmarze dirty, commited czy innych isolation level. Baza ta nie ma bajerów. Jest prosta i niezawodna, a jak ktoś się uprze to i umożliwiająca rozbudowę poprze np. pisanie dodatkowych bibliotek dosŧępnych z SQL. Co do wydajności to trudno mi się autorytatywnie wypowiadać – bo i trochę lat minęło i testów też nie rozbiłem zbyt rozbudowanych – ale szybkość jej była co najmniej zadowalająca 🙂 Baardzo dawno temu, kiedy jeszcze baza była u Borlanda, gość z Borlanda twierdził, że baza jest profilowana na ok 200 userów i więcej nie ma co jednocześnie połączać 🙂

          @nobody:
          Może i Iterbase jest stary, ale to antyk, który ma wbudowaną technologię bardziej zaawansowaną niż MS SQL, mySQL czy też PostrgeSQL (kiedyś Postrgres miał mieść optymistyczne lokowanie, ale chyba nie dodali).

          @mario:
          Fajne narzędzia do zarządzania firebird były kilka lat temu i chyba nie zniknęły 🙂
          A co do składni SQL to zależnie od gustów. Ja wolę prostą składnie i dobrze zaprojektowaną bazę niż zaufanie do "magicznych" właściwości optymizerów silnika bazy danych.
          Stara prawda mówi: każdy sprzęt można "zabić" przy pomocy odpowiedniego softu – każdy silnik bazy danych można zabić przy odpowiednio skleconym zapytaniu SQL 🙂
          Jeśli chodzi o poziom zgodności to z tego co pamiętam to firebird dość mocno trzymał się standardów SQL, ale oczywiście mogło się to zmienić :).

          @macias:
          Miałem podobne odczucia w stosunku do PostgreSQL.

          @mario:
          To, że jakiś produkt jest gówniany nie oznacza, że baza na której został postawiony jest gówniana. To tak jakbyś twierdził, że np. C (lub inny język programowania) jest gówniany bo produkt jest gówniany 🙂

        2. borizm pisze:

          Optimistic Locking to niby cecha RDBMS'a ? Raczej sposobu dostępu do modyfikowanych rekordów bazy !
          Raczej chodziło Ci o MVCC (MultiVersion Concurrency Control).

          PostgreSQL też to ma od dawien dawna, MS SQL Server od wersji 2003, Oracle chyba od wersji 8, SAP/MAX DB i chyba InoDB to ma, a DB2, MySQL i wieli innych nie.

          Firebird, to miły RDBMS i ponoć bezobsługowy (sam się nim tylko bawiłem), ale z tego co pamiętam przed 4 laty, to miał poważne braki funkcjonalne (np.: nie był XML ready), a wiem że jego rozwój nie jest wcale tak dynamiczny.

          Ja stawiam na PostgreSQL od dawien dawna i życzę IBM'owi aby ten zaczął współrozwój tego RDBMS'a, bo ich DB2 UDB wciąż słabnie (wersja na Mainframe się obroni sama), a Informix to legacy od wielu lat.
          Jeśli IBM (twórca pierwszej komercyjnej bazy relacyjnej na modelu E. F. Codd'a) się nie obudzi to Oracle i MS połkną cały rynek RDBMS'ów.

          MySQL jest w rękach Sun, a najprawdopodobniej właśnie dziś trafił w ręce Oracle razem z całym Sun Microsystems. Jeśli dobrze czuję politykę Oracle, to będą oni raczej usuwać kłody sprzed sztandarowego Oracle Database, więc InoDB ani MySQL nie mają szans stać się tym czym jest obecnie PostgreSQL lub nawet Firebird. Oracle prędzej stworzy pomost między MySQL'em a Oracle DB (ukompatybilni je) i skłoni do używania tego drugiego na chwilowo preferencyjnych warunkach.

        3. jacek2v pisze:

          @borizm

          Oczywiście, że optymistic locking to cecha RDBMS i zresztą nie tylko także i innych baz.
          Ja w PostgreSQL ani MS SQL ani Oraclu oraz w MySQL nie znalazłem oplock.
          Raczej tu chodzi o to w jaki sposób są rozwiązywane konflikty modyfikacji oraz jak działają transakcje. Rzeczywiście jest to związane z MVCC, ale np. w Firebird/Interbase oznacza to co innego niż w bazach z pesymistic locking.

          Możesz podesłać jakieś linki ?

          Te wersje w swoich opisach mają jasno powiedziane, że są pesymistic locking. Notabene niektóre chyba do tej pory na poziomie strony a nie rekordu.

      2. nobody@gmail.com pisze:

        chodzi ci o ten antyk co borland się go pozbył kilka lat temu i wypuścił na licencji os? tylko osoba, która nigdy nie uzywała postgresa może twierdzić, że firebird jest bardziej zaawansowany. od momentu wypuszczenia nie był. no chyba że dla kogoś miarą zaawansowania jest wypuszczenie przez dużą korporację. to wtedy składam kondolencje.

        1. mario pisze:

          Mamy w firmie jeden produkt na firebirdzie i jest to tak wielkie gówno, że wolę się na jego temat nie wypowiadać. PGSQL bije Firebirda pod wieloma względami na głowę. Choćby zgodność z SQL, poziom zaawansowania zapytań, prędkość, ilość narzędzi, maksymalny rozmiar bazy, komunikaty błędów firebirdzie to koszmar.

    2. ak47 pisze:

      Rozumiem ze można się przyczepić do tego ze mysql jest popularniejszy. Ale już zarzucenie postgresowi że jest mało zaawansowany to już kompletna nie znajomość tematu.
      Weź sobie kartkę kolego i odwiedź te strony, pospisuj jakie funcjonalności oferuje każda z tych baz.
      Później w ramach testu znajdz opinie o tym na necie (np mysql posiada gis ale nikt tego nie uzywa), Zrób sobie część wspólną dla każdej z baz. Wyjdzie że najbardziej kompletną bazą jest postgres.

      1. macias pisze:

        > Weź sobie kartkę kolego i odwiedź te strony, pospisuj jakie funcjonalności oferuje każda z tych baz.

        A pozniej dopisz co z tej szerokiej oferty jest faktycznie wdrozone i sie nie sypie.

        Swego czasu (3 lata temu) musialem wybrac jedna z tych baz i wstepnie wybralem postgresa, ale jak zaczalem wnikac w szczegoly, to sie okazalo, ze teoretycznie rewelacja, ale praktycznie to blad za bledem, albo niedorobka. MySQL jest o tyle lepszy, ze przynajmniej sie glupio nie "reklamuje". To co opisali, ze jest, faktycznie jest.

        1. ak47 pisze:

          Nikt nie twierdzi że każdy produkt w każdym zastosowaniu jest najlepszy.
          Zarzuciłeś postgresowi niską funkcjonalność, a w stosunku do takiego mysql'a postgres oferuje dużo więcej.
          Specjalnie napisałem:
          >Później w ramach testu znajdz opinie o tym na necie …
          Bo to co piszą na stronach czasem nie ma odzwierciedlenia w realu.
          Co do twojego przypadku to znam ludzi o dokładnie odwrotnych doświadczeniach. I weź sobie pod uwagę jeszcze jedno. Dla "nowych" frameworków np. django,RoR,pylons referencyjna bazą danych jest właśnie postgres, nie mysql.

        2. trasz pisze:

          @macias: Co jest o tyle zabawne, ze w druga strone – w sensie, o rzeczach, ktore w MySQL podobno sa, ale w praktyce nie dzialaja do konca – mozna opowiadac godzinami; od transakcji – ktore w MySQL nie sa we wszystkich przypadkach transakcyjne, oczywiscie pod InnoDB – poczawszy, na podstawowych rzeczach w rodzaju podselectow (ktore nie w kazdej sytuacji dzialaja) czy wsparcia dla bindowania argumentow w API (ktore bindowaniem jest tylko z nazwy) skonczywszy.

          I to oczywiscie zupelnie abstrahujac od problemow z wydajnoscia MySQL-a, poczawszy od szczatkowego plannera (przez co baza klęka, jesli probujesz robic to, pod katem czego model relacyjny wymyslono, czyli mniej trywialne joiny), po zwalona architekture, przez co MySQL sie nie skaluje.

          Napisz konkretnie, co w Postgresie nie dzialalo, mimo ze powinno.

        3. macias pisze:

          Ok, ale czy na pewno dokumentacja MySQL-a tego nie opisuje? Nie myl ogolnych oczekiwan vs. implementacja MySQL-a, bo ja o tym nie pisalem. Co do wspomnien, to az takiej archeologii rozwoju softu nie prowadze 😀

        4. nobody@gmail.com pisze:

          @macias
          najnormalniej w świecie łżesz i siejesz fud,

        5. bk76 pisze:

          Wybraliśmy Postgresql'a jakieś 3-4 lata temu do bankowości elektronicznej i nie było z nim przez ten czas żadnych problemów.

        6. Królik pisze:

          W sensie stricte matematycznym PostgreSQL nie jest najbardziej zaawansowanym systemem baz danych na licencji OS. Tzn. MySQL bije go pod przynajmniej kilkoma względami np. możliwością ustawienia języka dla danej kolumny, większą wydajnością przy prostych zapytaniach czy dużo prostszą konfiguracją replikacji. Ale lista różnic w drugą stronę jest znacznie większa… 😛

          P.S. I tak MS SQL Server rządzi. No, ale to nie OS. Szkoda.

        7. grzempek pisze:

          A nie mozemy po prostu przyznać, że i MySQL i PostgresSQL i SQLite są dobrymi bazami, i tylko od charakteru zastosowania zależy, ktorą się wybierze?

        8. Królik pisze:

          Pełna zgoda, ale obecni developerzy Postgresa uzurpują sobie prawo do nazywania ich systemu "najbardziej zaawansowanym otwartym RDBMSem", co IMHO nie jest do końca prawdziwe. Jak mierzyć zaawansowanie? Liczbą dostępnych funkcji? Ilością kodu źródłowego? Innowacjami prowadzącymi do wysokiej wydajności? Wygodą administracji? Zgodnością z ACID?

        9. 0xhiryuu pisze:

          @grzempek
          Jasne, ze nie mozemy bo trzeba toczyc zaciekly boj o to kto ma lebsze resoraki w piaskownicy.

        10. sjakub pisze:

          @trasz, co z toba? tyle plusow? bys sie wstydzil 😛

        11. karakar pisze:

          @Królik: A to nie jest tak, że wraz z którąś z wersją 7.x wyprzedził MySQL-a w wydajności wykonywania prostych zapytań?

          Tu masz test ze stycznia:
          http://matipl.pl/2009/01/07/porownanie-wydajnosci…

      2. maciek pisze:

        Ale już zarzucenie postgresowi że jest mało zaawansowany to już kompletna nie znajomość tematu.

        Czy ja twierdzę, że jest mało zaawansowany? Ja jedynie wymieniłem inne i zadałem pytanie, dlaczego najbardziej zaawansowany 😉

    3. szatox pisze:

      sqlite nie jest konkretnie bazą danych, ale biblioteką sprawiającą, że plik tekstowy zaczyna zachowywać się trochę podobnie do bazy danych. Duży plus za nie pożeranie gigantycznej ilości zasobów, ale zakres możliwych zastosowań jest mocno ograniczony

      1. macias pisze:

        To samo mozna powiedziec o kazdej bazie, za wyjatkiem tej, ktora pozera najwiecej zasobow 🙂

        1. michuk pisze:

          Sqlite jest raczej w tej kategorii co MS Access, czyli "desktopowych" baz danych, działających po stronie klienta.

          MySQL czy Postgres konkurują raczej z SQL Server.

        2. Maciej Piechotka pisze:

          Mi się marzy taki 'desktop PostgreSQL' do programowania. SQLite ma kilka 'możliwości' utrudniające programowanie (gdybym nie spróbował uruchomić na PSQL to nigdy bym się nie dowiedział że poprzez błąd w kodze zapisuje string do kolumny typu Integer – taki 'ficzer' SQLite).

        3. To NIE JEST "błąd w kodzie"; SQLite po prostu tak naprawdę ignoruje typy danych, i to jest zamierzone. Możesz sobie pola poopisywać jako integery, reale, stringi itd. – ale w sumie i tak możesz potem wsadzać "wszystko wszędzie", bo tak ma być. Zasadniczo wszystko tam uważane jest za string, z którego – w razie potrzeby, i zależnie od kontekstu – np. "wydłubuje się" wartość numeryczną.

          Baza nie pilnuje, czy typ wpisywany zgadza się z deklarowanym, bo jej jest wszystko jedno. Te deklaracje mają charakter czysto opisowy.

          A nie, że "błąd w kodzie".

        4. Też nie do końca wszystko wszędzie i też nie do końca ignoruje. Nieprawdą jest również, że wszystko jest tekstem. 🙂 Po szczegóły zapraszam do źródła.

        5. Nikodem pisze:

          > To NIE JEST “błąd w kodzie”; SQLite po prostu tak naprawdę
          > ignoruje typy danych, i to jest zamierzone.

          Muszę Ci podziękować za tą informację. Zaoszczędziłem trochę czasu, miałem właśnie w ramach wolnego czasu potestować FB, ale widzę, że to taki bazodanowy jukebox. Wkładasz królika, wyciągasz zająca i wszyscy szczęśliwi 🙂

        6. > Też nie do końca wszystko wszędzie i też nie do końca ignoruje.

          Owszem, tam są drobne ograniczenia – generalnie zasada jednak jest taka, jak napisałem.

          Any column in a version 3 database, except an INTEGER PRIMARY KEY column, may be used to store any type of value. [..]
          The key here is that the type is recommended, not required. Any column can still store any type of data, in theory. It is just that some columns, given the choice, will prefer to use one storage class over another. The preferred storage class for a column is called its "affinity".

        7. > widzę, że to taki bazodanowy jukebox. Wkładasz królika,
          > wyciągasz zająca i wszyscy szczęśliwi

          1. Jak widać, nie znasz znaczenia słowa "jukebox" – kup słownik jakiś (hint: "jukebox" to bynajmniej nie "klatka na króliki").

          2. Ten drugi komentarz jest po prostu głupi. Na razie wypowiadam się o głupocie komentarza, nie autora – ale za drugim takim komentarzem stosowny wniosek będzie raczej nie do uniknięcia.

        8. nikodem pisze:

          do "ó"

          Widzę, że z Ciebie to taki "wujek dobra rada". Doradź mi proszę jakiś konkretny słownik, bo na prawdę nie wiem co wybrać.

          A co do głupoty drugiej części komentarza: nie moja wina, że FB tak ma.

        9. > na prawdę nie wiem co wybrać

          …skoro "na prawdę" – to polecam słownik ortograficzny na początek.

          > nie moja wina, że FB tak ma

          A, to sorry, tym razem pokajam się: widząc toto pod moim komentarzem sądziłem, że to miało dotyczyć SQLite (literki FB jakoś mi "umknęły").

          Jak to zaś naprawdę jest z FB – to nie wiem.

        10. Wycofuję "pokajanie" :] – zapomniałem, że przecież odpisałeś wyraźnie cytując moją wypowiedź.

          Zdecyduj się więc zatem, czy chodzi Ci o FB, czy o SQLite. Jeśli jednak o SQLite – to nie, SQLite "tak nie ma".

        11. Maciej Piechotka pisze:

          > To NIE JEST “błąd w kodzie”; SQLite po prostu
          > tak naprawdę ignoruje typy danych, i to jest
          > zamierzone. Możesz sobie pola poopisywać jako
          > integery, reale, stringi itd. – ale w sumie i
          > tak możesz potem wsadzać “wszystko wszędzie”,
          > bo tak ma być. Zasadniczo wszystko tam
          > uważane jest za string, z którego – w razie
          > potrzeby, i zależnie od kontekstu – np.
          > “wydłubuje się” wartość numeryczną.

          Nie zrozumiałeś – błąd był w moim kodzie. Działał z SQLite – i z niczym innym.

    4. y0g1 pisze:

      korzystam z mysql – i jak narazie spelnia moje oczekiwania. Jest tylko jeden problem, ktory zmusza mnie do jego porzucenia. libmysql jest na licencji gpl, a wolalbym lgpl lub bsd. Tylko z tego powodu, ze dane, do ktorych sie odwoluje w programach sa przechowywane w mysql, musze wszystkie programy udostepniac na tej samej licencji.
      Pozostale biblioteki z jakich korzystam sa na lgpl lub bsd – dlatego przymierzam sie do
      zastapienia mysql przez postgresql.

      1. michuk pisze:

        Ale modyfikujesz libmysql i zmodyfikowana wersja jest częścią twojego programu? Bo jeśli nie, to spokojnie możesz przecież traktować MySQL jako oddzielny soft, niezależny od twojej aplikacji i wcale nie musisz udostępniać swojego całego kodu na GPL…

        1. Tu jest właśnie główny problem licencji GPL. O ile MySQL faktycznie jest oddzielnym softem i nie może wpływać na warunki licencjonowania mojego programu, o tyle libmysql jest linkowana (statycznie lub dynamicznie) z moim programem. W przypadku, gdy jest ona na GPL zaczynają się schody, bo Stallman twierdzi, że mój program powinien być dystrybuowany na GPL, a prawnicy, że nie. I bądź tu mądry ;).

        2. Żeby uniknąć nieporozumień: "mój program" w wypowiedzi powyżej to tylko twór teoretyczny, nie mający nic wspólnego z programem y0g1 ;).

        3. trasz pisze:

          @michuk: RMS (i cale FSF) twierdza cos przeciwnego – ze kazdy kod zlinkowany (nawet dynamicznie) z kodem na GPL musi byc na licencji GPL.

        4. michuk pisze:

          @trasz: Racja. Jeśli biblioteka byłaby wykorzystywana przez program, tj. nasze funkcje wołałyby jej poprzez api, to pewnie trzebaby udostępnić nasz kod na GPL.

          Co ciekawe już skorzystanie z bazy MySQL (przez interfejs typu JDBC) nie wymusza wypuszczenia kodu na GPL, nawet jeśli baza w MySQL jest integralną częścią naszego produktu.

          Głupie to. BSD rządzi 🙂

        5. clondike pisze:

          @michuk
          A żeby było ciekawiej, oficjalny darmowy sterownik JDBC do MySQL jest na licencji GPL. Pisząc aplikację linkujemy z nim, więc trzeba wypuścić program na GPL. Oczywiście, możesz kupić sterownik na innej licencji 😛

        6. jellonek pisze:

          trasz: to ze RMS (i cale FSF) cos twierdzi – to jak sam wiesz, nie musi sie zgadzac z rzeczywistoscia.
          ich "chcice" sa zlewane przez wielu, np. popatrz na stery nvidiowe…

        7. maciek pisze:

          Mi się wydaje, że Stallman jako autor systemu GNU, a przynajmniej jego inicjator, ma cokolwiek do powiedzenia w sprawie zasad rządzących owym systemem 😉

        8. gotar pisze:

          A ktoś używa tego ich systemu?

        9. jellonek pisze:

          jakiego systemu?
          przeciez rozmawiamy o licencji a nie o hurdzie…

        10. gotar pisze:

          @jellonek – ja tam widzę, że maciek pisze o systemie GNU. I autor nie ma nic więcej do gadania niż to, co zostało w licencji zapisane.

      2. Thar pisze:

        Tak, GPL dla biblioteki to zły wybór. Ale skoro Sun kupił MySQL, mógłby to zmienić.

    5. mario pisze:

      @maciek: z całą pewnością pgsql to najpoważniejszy OpenSourceowy RDBMS. sqlite czy hsqldb służą raczej do embedowania w programach, do operacjach na małych bazach, mysql do prostych serwisów internetowych, gdzie nie ma skomplikowanych zapytań i liczy się prędkość.

  2. Fazer pisze:

    A ja spytam z innej beczki, dlaczego PostgreSQL jest lepsze od MySQL? Nie orientuję się zbytnio w bazach danych, ale kilka lat temu kupiłem sobie książkę o PHP + MySQL (jeszcze nie przeczytałem). Czy teraz nie warto jej się uczyć? Pytam z czystej ciekawości.

    1. niktciekawy pisze:

      Zaryzykuje i poloze swoja glowe na szali, ze z mysqla to masz tam do poznania z 5 funkcji (wlasciwie to api do polaczenia z baza, zrobienia zapytania i sparsowania wynikow). Pozostala czesc to tworzenie baz danych czy tabel w ogolnosci. Odnosnie tych "5-ciu funkcji" to pewnie zamiast mysql_connect uzywasz pg_connect lub cos w ten desen. Wiec jak najbardziej ksiazki sie nie pozbywaj tylko z tego powodu, ze chcialbys "ruszyc" wszystko na postgresie.

    2. Królik pisze:

      Do pewnych rzeczy lepszy, do innych nie. Przy złożonych zapytaniach PostgreSQL jest zdecydowanie wydajniejszy. Lepiej też się sprawuje przy dużej liczbie równoległych transakcji niż InnoDB w MySQLu. Ale już np. replikacja master-slave w Postgresie to porażka (właściwie to oficjalnie jej nie ma). Podobnie przy dużej intensywności zapisów, MySQL też radzi sobie lepiej, bo tam każdy update nie powoduje dopisywania nowego rekordu.

      A czemu nie DB2 Express-C? Darmowy i zupełnie inna półka, jeśli chodzi o wydajność i możliwości.

      1. maciek pisze:

        DB2 ma kilka poważnych wad, których pozbawione są alternatywy:
        – jest zamkniętym oprogramowaniem
        – ma na sztywno wbite ograniczenia co do wielkości zasobów, jakimi może dysponować. Nie myśl nawet o replikacji, czy choćby wykorzystaniu wielo-procesorowego serwera 🙂

        1. Królik pisze:

          Tak, to prawda, pytanie tylko, czy jak ktoś rozważa replikację, lub wykłada kasę na wieloprocesorowy serwer lub kilka, to czy przypadkiem koszty pełnej licencji nie stają się śmiesznie małe w porównaniu z resztą kosztów całego przedsięwzięcia. Wiele firm kupuje te produkty (np. w Polsce głównie Oracla i Ms SQL Server) i im się to opłaca. A to nie jest sytuacja taka jak Windows kontra Linux, że ludzie biorą, coś do czego są przyzwyczajeni.

        2. Królik pisze:

          A, jeszcze co do ilości zasobów, to należy uwzględnić, że takie DB2 Express-C niby ma ograniczenie na 2GB RAMu, ale z tych 2GB potrafi zrobić dużo lepszy użytek niż taki MySQL czy PostgreSQL. Choćby bufory na sortowanie są o wiele inteligentniej rozwiązane czy buforowanie planów zapytań (PostgreSQL w ogóle potrafi buforować plany zapytań ad-hoc? Po czasie wykonywania w kółko tych samych zapytań wnoszę, że nie). No i DB2 nie potrzebuje też dodatkowej pamięci na VACUUM. 😀

        3. nobody@gmail.com pisze:

          @Króli: "Po czasie wykonywania w kółko tych samych zapytań wnoszę, że nie"

          łżesz i siejesz fud

        4. maciek pisze:

          Niestety w takich sytuacjach często koszt licencji zamkniętego oprogramowania co do rzędu wielkości jest porównywalny z ceną samego sprzętu. Proszę zobaczyć na przykład ten wpis

          Proszę zwrócić uwagę:
          RDBMS open source + system operacyjny open source + takiż webserwer + sprzęt pod całe to tatałajstwo: $131k
          Web ops/s: 9546

          RDBMS własnościowy + takiż system operacyjny + takiż webserwer + sprzęt pod to całe tatałajstwo: $204k (duża część ceny to licencje właśnie)
          Web ops/s: 6250 (drożej a wolniej)

          Tu akurat MySQL, ale ogółem nie jest tak, że zalety zamkniętego oprogramowania (nawet jeśli obiektywnie bardziej zaawansowanego technicznie) usprawiedliwiają pakowanie się w vendor lock-in, drogie licencje i całe to zamieszanie 🙂

          Z resztą taki MySQL ze swoimi zapowiadanymi technologiami Falcon i Maria oraz innymi rozwinięciami proponowanymi przez nowego właściciela nie tylko jeszcze jaśniej zacznie świecić w świecie webowym, ale i w innych zastosowaniach się może wybić.

          PostgreSQL z kolei sam z iebie jest przedsięwzięciem niesamowicie rozwojowym, o czym świadczy choćby powodzenie takich przedsięwzięć jak Greenplum czy EnterpriseDB.

        5. ak47 pisze:

          @królik
          Chyba nie widziałeś cen za licencje sybase czy oracle. Za taką kasę to można kilka zajebistych maszyn kupić.
          >A to nie jest sytuacja taka jak Windows kontra Linux, że ludzie biorą, coś do czego są >przyzwyczajeni.
          Czy ty robiłeś kiedys migracje z jednego systemu bazodanowego na inny, że takie pierdoły gadasz? Ta aplikacja napisana na oracle'a zadziala od ręki na mssql? Idź wytrzeźwiej.
          To że firmy które używały, nadal kupują te bazy, wynika z tego ze dostają rabaty na poziomie 80-90%. Tak się trzyma użytkownika.
          Expresy -> wszystko pięknie ładnie dopóki proc się wyrabia, i nie potrzebujesz więcej miejsca na baze ,partycjonowania lub innej funkcji zablokowanej.

        6. trasz pisze:

          @maciek: Porownanie o tyle od czapy, ze po pierwsze SQL Server jest baza danych polke wyzej niz MySQL pod wzgledem funkcjonalnym (o bezpieczenstwie danych i niezawodnosci nie wspominajac), a po drugie Windows chodzilo pod jakas dziwna wirtualizacja, ktorej szczegolow nie podano.

          I ogolnie jest tak, ze zalety oprogramowania zamknietego jak najbardziej usprawiedliwiaja pakowanie sie we wszystkie, rzeczywiste (cena) i raczej hipotetyczne (vendor lock-in) problemy z nimi zwiazane. Dlatego wlasnie tak duzo widac Oracle'a.

        7. Królik pisze:

          Wiesz, to jest jednostkowy przykład i to jeszcze na dodatek pochodzący od Suna, więc faktycznie bardzo wiarygodny i bezstronny 😀 Wejdź na strony Microsoftu, to wyjdzie, że MS SQL Server jest 2x tańszy i to nawet po wykupieniu licencji na Windows. 😀
          A co do rozwoju MySQLa, to nie jest wcale tak różowo – póki co kilkaset nierozwiązanych bugów ostatniej stabilnej wersji i odejście głównych devów nie wróży nic dobrego.

          Rozwiązania zamknięte owszem są może droższe i mają pewne wady typu vendor-lockin, ale w powyżej pewnych obciążeń lub przy odpowiednio wysokim skomplikowaniu zapytań, rozwiązania FLOSS się nie umywają. Zapuść sobie PostgreSQL 8.3 na benchmarku TPC-H i porównaj z czymkolwiek komercyjnym. To nie są różnice procentowe. To są różnice wydajności rzędu dziesiątek, a czasem tysięcy razy.

        8. maciek pisze:

          To prawda, że jeszcze nie ma programu open source pod każde zastosowanie, ale po co je dyskryminować tam, gdzie sprawdzają się znakomicie?

        9. maciek pisze:

          tr:
          Leading Virtualization Platform to oczywiście vmware, a nie nie "jakas dziwna wirtualizacja"… choć może dziwna jest dobrym określeniem dla tego cool'awego rozwiązania.

          I ogolnie jest tak, ze zalety oprogramowania zamknietego rzadko usprawiedliwiaja pakowanie sie we wszystkie (cena, vendor lock-in) problemy z nimi zwiazane. Dlatego wlasnie tak duzo widac MySQLa.

          A o tych półkach wyżej i niżej to można dyskutować… skoro dolnopółkowy produkt ma lepsze wyniki niż górnopółkowy 😀
          Ponadto nie wiem, jak MS SQL Server instaluje się w środowisku Solaris Cluster 😉 (wiem, że Oracle jak najbardziej to rozwiązanie wspiera). No to tyle w sprawie niezawodności 😛

          Wracając jeszcze do perspektyw rozwoju samego MySQLa: po to się wykłada 3 miliardy złotych na "M" w LAMP, aby dostarczyć kompleksowe rozwiązanie z rozsądnymi perspektywami rozwoju. Nie chce mi się wierzyć, że kierownictwo Suna władowało kupę kasy w niezbyt rozwojowe badziewie 😉

        10. michallo pisze:

          @Królik. Tak się spodziewam, że oracle czy też mssql także mają kilkaset nierozwiązanych bugów. Oracle też wypuszcza róznego rodzaju hotfixy itp itd.

        11. dancios pisze:

          Linux, Apache Middleware and PostgreSQL

      2. jata pisze:

        fakt, nie ma wbudowanej replikacji, ale czy porazka? Slony-I sprawdza sie bardzo dobrze, a juz zwlaszcza w replikacji master-slave..;)

    3. ak47 pisze:

      choćby
      – indeksy funkcyjne i warunkowe
      – tranzakcyjne ddl
      – stabilność ( na mysql widzialek kilka razy crash table, postgres mi padł jak macierz dyskowa zastrajkowała, a różne rzeczy z nim wyprawiałem)
      – sekwencje z prawdziwego zdarzenia
      – gis gdzie jest chyba jedyną alternatywa dla oracle'a
      – typy danych "usera"
      – kilka jezyków (pl/*)do klepania funkcji

      Co do uczenia, zawsze warto się uczyć :).

      1. Lewy pisze:

        > – gis gdzie jest chyba jedyną alternatywa dla oracle’a

        Tu akurat nieźle się prezentuje MonetDB (teoretycznie – GIS'a akurat nie testowałem)

        http://monetdb.cwi.nl/

      2. jellonek pisze:

        ak47: znasz moj przypadek 😉 tj. padajace raz na miesiac postgresy 😉 btw. nadal padaja, ale ze wzgledu na brak kompatybilnosci na poziomie plsql pomiedzy 8.2.x i nowszymi – niestety cale rozwiazanie nadal oferowane jest na "starych" bazach… (prace nad migracja sa prowadzone, ale za malo osob nad tym pracuje, a kodu do przerobienia jest cala tona…)

  3. Przecież jest Oracle. Po co ta dyskusja? 😉

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}

Newsletter OSnews raz w tygodniu. Bez reklam.