Ciekawy artykuł na blogu o zmaganiach z najnowszymi wersjami Postgresa i MySQL-a
Subiektywne porównanie odczuć po pracy z najnowszymi wersjami obu baz. PostgreSQL 8.3 pokazał, że ta baza potrafi być szybsza od MySQL-a, bo bardziej stabilna była zawsze. Dzięki temu zniknął ostatni poważny problem, który mógł powstrzymywać kogokolwiek przed migracją do Postgresa.


"Nigdy nie ukrywałem że jestem fanem postgresa, a mysql nie jest dla mnie prawdziwą bazą danych." – czy artykuł kogoś kto tak pisze warty jest przeczytania? to już nie jest subiektywizm, to jest fanatyzm
Nawet jeżeli to nie zmienia faktu że ten ktoś może mieć rację. Choćby dlatego warto takie coś przeczytać.
POWAŻNĄ bazą danych jest MSSQL, DB2 i Oracle 😉
Owszem (szczególnie te dwie ostatnie). Ale Postgres od początku celował w to, żeby do tego elitarnego grona kiedyś wejść. Moim zdaniem, krok po kroczku idzie w tym kierunku.
Oracle! BUAHAHAHA. Nazwa tej bazy dobrze oddaje jej zachowanie, wyrocznia jest potrzebna, aby je przewidzieć…
A co świadczy o powadze danej technologii? Nazwa? Plakat? Logo? Bo trochę nie rozumiem.
Nie jestem fanem żadnej bazy danych – bo to tak jakby być fanem wiertarki Bosch. Wiertarka musi działać i tyle. Baza danych też. I wiele wdrożeń chociażby bazy MySQL pokazuje, że u niektórych osób działa. Obawiam się, że gdyby ludzie mający proste serwisy www oparte o MySQL przenieśli się na "poważną" bazę danych to w niczym im by to nie pomogło – a raczej w wielu miejscach utrudniło życie. I jaki z tego wniosek? Może taki, że lepiej chyba skupiać się nad dyskusją – jaka baza danych jest lepsza w danym zastosowaniu, a nie udawać, że technologie bazodanowe dzielą się na dobre, złe i takie, które wcale tak naprawdę nie są bazami danych a ci, którzy myślą, że są.. to sami są idiotami 🙂
Teksty w stylu "mysql nie jest dla mnie prawdziwą bazą danych" miażdżą. Skoro nie jest prawdziwą bazą danych to czym jest? Nieprawdziwą bazą danych? Tetrisem? Konsolą ssh? Menadżerem okien? Czy może jakąś gierką? No sorry. To tak jakby napisać, że dla mnie Ubuntu nie jest prawdziwym systemem operacyjnym, bo używam innego.
Czy żaden z minusujących nie dostrzegł "buźki" przy wpisie maćka o "poważnych bazach danych"?
Przecież on "robi zlewę" z marketoidów i ich idiotycznych sformułowań.
@Magnes: Nie, to po prostu efekt niskiego poziomu tolerancji na badziew. Przykladowo, dokumentacja MySQL przez dluzsze czas twierdzila, ze transakcje sa glupie, bez sensu i niepotrzebne. Sama baza radosnie olewala wszelkie bledy zamiast prawidlowego zgloszenia ich aplikacji. Sensownego planera zapytan MySQL nie dorobil sie do dzis. Pewna zaleta jest lekkosc bazy i wydajnosc najprostszych zapytan, ale w zamian dostajemy architekture, ktora kompletnie sie nie skaluje.
MySQL to jest baza do prostych zastosowań. Oczywiście można użyć silnika obsługującego transakcje, ale wtedy wydajność spada. Podobnie jest z HSQLDB, baza trzyma praktycznie wszystko w pamięci i jest ekstremalnie szybka (napisana w Javie), ale nie oferuje bezpieczeństwa danych.
Coś co nie potrafi wykonać takiego zapytania:
UPDATE t1 SET column2 = (SELECT MAX(column1) FROM t1);
nie jest bazą danych. Kropka.
A to mysql? Miałem podobny problem, genialne rozwiązanie w mysql:
UPDATE t1 SET column2=(select column2 from( select * from t1 where.. ) as abc ) where …
Triforce normalnie! Mysql nie potrafi wsadzić do pola wartości pobranej z innego pola tej samej tabeli – chyba że podwójnym selectem. Wtedy i owszem, potrafi 😛
Bazą danych jest nawet kartkowy katalog w bibliotece, chociaż ręczę że nie wykona ci tego zapytania choćbyś je wyskrobał na szufladzie…
Tutaj chyba używa się pojęć "baza danych" zamiennie z "RDBMS". A by być RDBMS-em, szczególnie "poważnym rdbmsem" nie wystarczy obsługiwać języka w przybliżeniu podobnego do SQL 😉
Inna rzecz, że ze 161 eksabajtów danych produkowanych rocznie ledwie kilka % jest w RDBMSach (z czego niewiele w Poważnych RDBMSach), i nikomu to nie przeszkadza.
Dokładnie tak. Ani autor tego wpisu, ani nikt inny jakoś nie wspomniał o PAPIERZE (czy inny medium niż elektroniczne zapisy).
Niejaki "thar" po raz kolejny udaje, że nie wie, co chodzi.
tym razem ma racje…
@krzy2: po tym można stwierdzić jedynie, że MySQL jest słabą bazą SQL, ale zdecydowanie jest bazą.
Bazą danych jest nawet plik konfiguracyjny, a biblioteka odczytująca z niego wartości kluczy na pewno nie wykona nawet o wiele prostszego zapytania SQL. Tak naprawdę ponad 80% baz używanych w IT to bazy typu flat file. Choćby save'y w grze, pliki konfiguracyjne programów, każdy projekt zapisany w dowolnym programie to baza danych typu flat file. AutoCad, programy muzyczne, typu Reason, programy graficzne itp nie używają SQLa do zapisu i odczytu danych. Wszędzie są bazy typu flat file, bo wystarczają. Poziom wyżej w nieco poważniejszych zastosowaniach są bazy SQL, niektóre do mniej poważnych rozwiązań, niektóre do bardzo poważnych i odpowiedzialnych rozwiązań. Różnorodność jest po to aby wybrać coś co pasuje do rozwiązania danego problemu. Nawet bazy SQL relacyjne używają baz typu flat file do zapisu swojej konfiguracji. Po prostu wszystko ma swoje zastosowanie. Do prostego serwisu internetowego, w którym transakcje nie są potrzebne, mySql może się sprawdzić.
mySQL-a i Postgresa 😉
Fajny news. Mógłbyś chociaż dużą literą go zacząć…
W swietle ostatnich wydarzen warto byloby tez wspomniec o jeszcze jednej zalecie Postgresa – przewidywalnej przyszlosci. Nie wiadomo tak naprawde, co IBM zrobi z MySQL. PostgreSQL natomiast jest rozwijany przez spolecznosc.
@trsh
Jeśli się nawet IBM wypnie na mysql a według najnowszych wiesci to sun wypial sie na ibma :). To i tak pozostaje obecna wersja na GPL gdzie firmy moga sobie wziac kod i dalej go rozwijać, np. przez community. Szczerze mówiąc i tak nie da się nic bardziej spi… niż to, co zrobił do tej pory SUN, a kilka większych firmy i tak używa tego badziewia więc śmierci szybkiej nie wieszcz.
ze niby sun cos w mysql spierdzielil? co na przyklad?
mi sie wydawalo ze od kiedy sun przejal mysql to chyba sie ta zabawka poprawila?
ok, doczytalem 😉
rzeczywiscie niezla kiche odwalili 😉
po sunie sie czegos takiego nie spodziewalem, nawet w dobie recesji…
dożuciłbym jeszcze nazywanie wpisu/artykułu na własnym blogu "ciekawym"… dlaczego nie genialnym… wspaniałym… – odrobinę skromności gdy piszesz o sobie 😛
,,,i może słownik do tego?
To czy dany produkt jest poważny nie jest wyznaczane na podstawie tego czy wspiera w 101% standardy albo czy jakis administraczyna nie potrafi sobie z nia poradzic. MySQL odnisol duzy sukces w segmecie gdzie Postgres nie radzil sobie kompletnie przez ostatnich kilka lat, ale przeciez nigdy nie mial, autorzy jasno okreslali ze zalezy im na stabilnosci i na wspieraniu jak najwiekszej ilosci funkcjonalnosci a nie na dostarczeniiu malej i szybkiej bazy danych z jezykiem SQL na forntendzie. Mysql to taka partyzantka, dostarczal adhoc to co bylo potrzebne, pokolei, widoki, procedury skladowe, triggery, transakcje, wymienne silniki skladowania bazy itd, dalo sie to ogarnac bardzo szybko i towrzyc na tym biznes, nie stawiali przeciez na tym bankow ani aplikajci mission critical tylko upstarty, webaplikacje.
Jesli do bloga chcesz zaprzegac postgress bo go znasz, bardzo dobrze, ale jesli do bloga chcesz zaprzegac postgres bo ktos ci powiedizal ze mysql to nie jest baza danych to zastanow sie jeszcze raz czy dobrze dobierasz narzedzia do tego co chcesz zrobic, chyba ze jestes wyznawca metody "im trudniej tym latwiej"
Najzabawniejszy jest sam tytul newsa, od kiedy to w mniemaniu postregowscow mysql to wogole konkurent/przeciwnik w rownej walce ? Raz jest nim, a raz nie jest. Postgres moze stanowic kompletna alternatywe dla Oracle albo mssql, ale dla mysql przeciez to sa zupelnie inne kategorie wagowe.
Pozwolę sobie się z Tobą niezgodzić. Niby jaką inną kategorią wagową są obie bazy danych? Stosowałem obie zamiennie ze względu na wydajność prostych zapytań i napisałem ten artykuł dlatego, że już nie będę musiał tego robić. Wg mnie nie ma znaczenia czy na bazie działa bank czy strona www, jeżeli można mieć stabilną i szybką bazę danych za darmo, to po co wybierać inny produkt? Nie wiem też w którym miejscu baza MySQL jest prostsza w obsłudze od Postgresa? Według mnie w trudności obsługi nie ma między nimi prawie żadnej różnicy. No może taka że czasem różne zapytania zgodne z SQL 99 w bazie MySQL trzeba robić różnymi "wytrychami". Przykłady masz w komentarzach wyżej.
Nie stawiali na tym banków, ale Google dużo rzeczy na tym postawiło, a jak widać jaka panika jest jak coś z google nie działa kilkanaście minut, to prawie jak stawianie banku. 🙂
tylko jedna uwaga:
Google posiada WŁASNY silnik do mysqla a to jest już coś zupełnie innego.
Do większości blogów SQLite czy JavaDB to chyba overkill.
@Paweł kondzior: Cos w tym jest. Mowiac brutalnie, MySQL zostal napisany pod katem niedouczonych programistow webowych, ktorych edukacja odnosnie SQL-a skonczyla sie przed przeczytaniem rozdzialu o joinach, a zamiast modelu relacyjnego wystarczy im wiedza, ze to tabelki, cos jak w Excelu. Zauwazyles bardzo wyrazna korelacje miedzy robieniem joinow recznie, po stronie aplikacji, i uzywaniem MySQL? 😉
Czasem używanie Poważnego RDBMSa w stronce web zasilanej 100kB danych, z tysiącem uż. dziennie… to overkill. A większość domen w internecie spełnia rzeczony warunek 😀
@trasz
Najważniejsze to zdobyć swoją niszę, a ta, jak widać, jest spora 😉
"nie stawiali przeciez na tym bankow ani aplikajci mission critical tylko upstarty, webaplikacje."
Takie na przykład allegro.pl. Malutka stronka nie? 😉
(jakoś dopiero w zeszłym roku przeszli migrację na Oracle)
I może jeszcze na Windows Server?
Oni jeszcze php używajet.
A patrzyłeś na wykresy niezawodności/dostępności tego serwisu ?
A gdzie one są ?
Widocznie, skoro allegro.pl postawiło na początk na mySQl, to znaczy, że sami traktowali siebie z początku, jako "niewielki serwis internetowy", a jak się rozrośli, to postanowili zainwestować i "pójść na przód".
Jak to napisali wyżej, mySQL realizuje zapotrzebowanie na najprostsze rozwiązania, nie jest ono "totalnie uniwersalne", ale jaki widać, zdecydowanej większości ludzi taka "prostota" wystarcza.
Jeżeli ktoś potrzebował/potrzebuje więcej, to bierze PostgreSQLa.
I wszyscy są szczęśliwi.
@mby7930: Przyklad Allegro pokazuje cos innego – ze lepiej juz od poczatku nie opierac sie na badziewiu, bo nigdy nie wiadomo, kiedy nasz serwis zacznie byc duzy i "wyrosnie" z badziewnej bazy danych, zmuszajac nas do migracji.
Tak. Najlepiej od początku opierać się na oprogramowaniu własnościowym (na przykład tutaj: Oracle).
@maciek: Przypuszczam, ze mogliby stac na Postgresie, gdyby nie zaczeli od MySQL. Oracle ma to do siebie, ze zostalo napisane w taki sposob, zeby radzilo sobie w kazdej sytuacji, nawet z najbardziej debilnym SQL-em. A ze pod MySQL optymalizuje sie odwrotnie niz pod pozostale bazy, to migracja na Postgresa jest trudna.
A łatwość używania? mySQL nie wymaga specjalisty. Nawet mi się go udało uruchomić i używać. A PostgreSQL to jednak wyższa szkoła jazdy.
Nie wiem skąd te przesądy. Bierzesz instalkę pod windowsa. Instalujesz, odpalasz admina, łączysz się z instancją i zakładasz bazę danych. Wszystko klikając. A przecież CREATE TABLE, czy SELECT ma prawie identyczną składnie.
Ja wiem, że masz rację, ale.. widziałem te instalacje Postgresa na windows,są chyba dwie (msi i exe) i do tego całkiem różne. Zakładają zdaje się konta użytkowników w systemie – ot konwencja, nie mam nic przeciwko osobiście, ale "mały" mySQL tego nie robi. Do tego jakieś problemy gdy te instalatory się zamieni. Do tego zdarzające się obciążenie maszyny u niektórych gdy baza idluje, może niewielkie, ale na baterii laptopowej się to "czuje".
To wcale nie moje problemy – mój rok pisał projekt na Postgresie, nasłuchałem się "nie można było prościej, na mySQL?". Ludzie chcą jednak "click'n'run"
No, właśnie mySQL (o ile się nie mylę), miał wersję instalacyjna na Windowsa wcześniej niż PostqreSQL. Teraz sytuacja jest inna, skoro PostgreSQL też już jest dostępny na tę platformę.
W międzyczasie narosło jednak sporo zaszłości, dlatego nie ma co zbyt mocno pomstować na mySQL.
ta, ale dzieki temu ze mysql ta instalke prosta mial "wieki temu" wiele dzieci sie na nim wychowalo…
Jedna krótka uwaga – Postgres i PostgreSQL to (jak na razie) dwa różne produkty. Używanie więc określenia "Postgres" w stosunku do "PostgreSQL" jest swoistego rodzaju wprowadzaniem czytelnika w błąd.
Owszem – są przymiarki do tego, by wrócić do korzeni i zmienić nazwę na "Postgres", ale zastanawiam się co na to powiedzą władze uniwersytetu w Berkeley.
Ja już raz wieściłem śmierć MySQLowi – kiedy do php wprowadzono SQLite. I nic się nie stało, MySql wciąż śmiga na milionach serwerów. Myślę że teraz też niewiele się zmieni.
Bo szybkość działania nie jest tą cechą MySQLa która przesądza o popularności bazy. Raczej łatwość konfiguracji, dostępność wygodnych narzędzi webowych, przewidywalność, prostota…
Wbrew pozorom w 90% przypadków użycia bazy danych nie są potrzebne te rzeczy o których uczysz się na SZBD transakcje, więzy spójności… w webie to tylko przeszkadza 😉