PostgreSQL czy MySQL ?

0

Zastanawiałem się, jak się rozwinie sytuacja po tym, jak firma Oracle przejęła Sun Microsystems. I przyznaję, że nie jestem zadowolony. Nie zmienia to faktu, że MySQL jest najpopularniejszą bazą danych.

Jednak jeśli mielibyście wybór - jakich argumentów użylibyście za wyborem któregoś z RDBMS?

3

mysql nie powinien być nazywany RDBMS. Jak można nazwać coś co nie pozwala na klucze obce RELACYJNĄ bazą danych?? A nie przepraszam - od wersji 4.0 ma, pojawiły się nawet stored proc i wyzwalacze! Tylko gdzie się podziała ta sławna i podawana jako najważniejszy argument szybkość???? Prawda jest taka, że mysql jest tak popularny tylko i wyłącznie dzięki WWW i PHP. Dla programistów PHP brak FK czy też ACID to nie problem bo korzystania z transakcji jako takich nie widziałem jeszcze w żadnym systemie napisanym w PHP.

Z drugiej strony możesz wskazać jakikolwiek chociaż trochę znany program, który nie jest stroną WWW i działa z mysqlem? Bo ja znam kilka z naszego podwórka, które pracują z darmowym FB czy Postgresem, z darmową wersją MSSQL czy Oracle ale z mysqlem nie bardzo.

forsberg napisał(a)

MySQL jest najpopularniejszą bazą danych.
zapomniałeś tylko dodać że najpopularniejszy w połączeniu z PHP. BTW znalazło by się paru na tym forum, którzy by napisali, że PHP nie powinien być nazywany językiem programowania :p

I zapomniałem jeszcze dopisać, że licencja mysqla jest do d**y - niby jest darmowy ale trzeba za niego zapłacić więc o jakim darmowym rozwiązaniu mówimy??

0
Misiekd napisał(a)

Z drugiej strony możesz wskazać jakikolwiek chociaż trochę znany program, który nie jest stroną WWW i działa z mysqlem?

Znanego nie, ale parę lat temu pracowałem w dużej firmie z branży budowlanej i ich CRM stał na MySQL. Baza miała 3GB, serwer 4GB RAM, a zapytania wykonywały się co najmniej 30 sekund. :D

1
Misiekd napisał(a)

BTW znalazło by się paru na tym forum, którzy by napisali, że PHP nie powinien być nazywany językiem programowania :p

Np. ja uważam, że PHP nie powinno istnieć, nigdy nie widziałem bardziej porytego języka.

0
winerfresh napisał(a)

Np. ja uważam, że PHP nie powinno istnieć, nigdy nie widziałem bardziej porytego języka.

Możesz rozwinąć? ;)

Misiekd napisał(a)

Dla programistów PHP brak FK czy też ACID to nie problem bo korzystania z transakcji jako takich nie widziałem jeszcze w żadnym systemie napisanym w PHP.

No transakcje są w tabeli typu InnoDB (ale nie w MyISAM) w MySQLu, ale osobna sprawa, że muszę się niestety z wami zgodzić, przynajmniej po części. Ponadto co mi się nie podoba: język stricte strukturalny i noszący znamiona prostackich witryn lat 90-tych (i to się niestety nie zmieniło), zachęcanie do bałaganu w kodzie, quasi-obiektowość (język nie-obiektowy z dorobionymi obiektami), słabe typowanie, używanie zmiennych bez deklaracji, praktycznie kompletny brak wsparcia dla dalszego utrzymywania aplikacji....... Symfony trochę poprawia sytuację, ale nie zmieni przecież całego języka.

0

Baza USOSweba siedzi na MySql (baza Usosa to już Oracle).

0

pisałem jakąkolwiek aplikację poza stronami www

2
forsberg napisał(a)
winerfresh napisał(a)

Np. ja uważam, że PHP nie powinno istnieć, nigdy nie widziałem bardziej porytego języka.

Możesz rozwinąć? ;)

Język nieposiadający jakiekolwiek konwencji nazewniczej w bibliotece standardowej, w którym można jedną rzecz zrobić miliardem różnych funkcji, który rzuca wyjątkami jakie mu się podobają, wyjątki te jeśli nie są złapane to wcale nie znaczy, że aplikacja się nie wysypie, wręcz przeciwnie, wszystko przetrzyma i łądnie udostępni publicznie info że coś tu jeb... wszystkim chętnym i jeszcze dumnie merda ogonem, że dobrze wykonało pracę, nie ma prawa wg mnie istnieć. To jest jakiś informatyczny żart a nie język programowania.

0

Koledzy trochę przesadzają. Baza MySQL stanowi realną alternatywę dla PostgreSQL szczególnie jeżeli chodzi o aplikacje webowe. Bazę MySQL można używać nie tylko z PHP ale również z językiem Java, Python czy Ruby. Zdecydowanie łatwiej jest znaleźć hosting wspierający MySQL niż PostgreSQL. Baza MySQL poza silnikiem MyISAM posiada również nowszy silnik InnoDB wspierający transakcje i klucze obce.

0

Ja bym użył PostreSQL'a ze względu na:

  • licencje (można bez opłat użyć komercyjnie)
  • brak zabawy z silnikami i zastanawianiem się, czy ten obsługuje to co chcę czy nie
  • PL/pgSQL i inne PL'e jak PL/Ruby, PL/Python oraz PL/R etc.
  • Dążenie projektu do jak największej zgodności z SQL'em
0

Pracowałem z większością baz na rynku, MySQL był wśród nich najgorszym systemem.
Ale to mogło się zmienić z czasem, pracowałem chyba z MySQL 4, a to cały czas się rozwijało.

Kilka powodów przeciw MySQL z pamięci:

  • transakcje dostępne lub nie (zależnie od konstrukcji bazy)
  • bardzo niestandardowa składnia
  • teraz już chyba niezbyt darmowe poza hostingami ($2k na rok - http://www.mysql.com/products/)

Porównanie składni baz:
http://troels.arvin.dk/db/rdbms/

0

Koledzy, po raz kolejny mijacie się z prawdą :)

  1. MySQL jest na licencji GPL w związku z czym można pobrać i użyć tej bazy nieodpłatnie. Licencję komercyjną trzeba wykupić dopiero w sytuacji dystrybucji oprogramowania komercyjnego wraz ze zintegrowaną bazą MySQL. W przypadku najpopularniejszego zastosowania MySQL jakim są aplikacje webowe, bazę otrzymujemy w hostingu i nic nie musimy dopłacać w stosunku do PostgreSQL.
  2. Silnik InnoDB wspierający transakcje i klucze obce jest domyślnym silnikiem tabel od wersji 5.5 MySQL, więc od tej wersji każdy nawet kompletny laik korzysta z dobrodziejstw InnoDB, bez konieczności posiadania jakiejkolwiek wiedzy o konfiguracji tabel. InnoDB było dostępne oczywiście znacznie wcześniej i każdy kto w minimalnym stopniu zainteresował się tematem mógł w łatwy sposób użyć tego silnika.
  3. MySQL obsługuje większą część standardu ANSI/ISO SQL oraz oferuje własne rozszerzenia. Pod tym względem jest bardzo podobny do znanego i cenionego MSSQL, które obsługuje T-SQL będący rozwinięciem ANSI/ISO SQL. MSSQL nie posiada pełnej zgodności z ANSI/ISO SQL, więc baza MySQL nie jest tu wyjątkiem.

Nie mam zamiaru tu bronić MySQL na śmierć i życie, chcę jedynie udowodnić, że odpowiedź na pytanie o wyższość MySQL nad PostgreSQL lub odwrotnie nie jest tak oczywista jak wynika to z opinii w tym wątku.

0

Kilka porównań można znaleźć w necie:
http://www.wikivs.com/wiki/MySQL_vs_PostgreSQL
http://wiki.postgresql.org/wiki/Why_PostgreSQL_Instead_of_MySQL_2009
(stare) http://www.techrepublic.com/article/mysql-vs-postgresql/1050671

Gwoli ścisłości: gdybym miał robić wizytówkę z 10 pod-stronami to nie zastanawiałbym się i wybrał tańszą dostępną opcję (czyli MySQL).
Gdyby to jednak miała być baza która służy nie tylko pod WWW, albo gdyby miała być serwowana na serwerze klienta - tu się trzeba zastanowić co się bardziej opłaca.

0

@vpiotr - jedno z tych porównań pochodzi ze strony wiki PostgreSQL, kolejne jest z 2002 roku, a następne porównanie w ogóle nie dowodzi wyższości PostgreSQL nad MySQL...

Gdybym miał zrobić prostą aplikację webową, bloga, sklep czy wizytówkę sięgnąłbym po MySQL. Z kolei przy poważniejszych zastosowaniach wykluczyłbym zarówno MySQL jak i PostgreSQL, a wziąłbym sprawdzone rozwiązanie Microsoft czyli SQL Server, ew. Oracle albo jeżeli byłaby to duża aplikacja webowa użyłbym, którejś z baz NoSQL, które skalują się znacznie lepiej niż bazy relacyjne. PostgreSQL użyłbym tylko w przypadku niskobudżetowej aplikacji desktopowej.

0

PostgreSQL to sprawdzony system, tzn. wdrożony w wielu projektach (np. http://en.wikipedia.org/wiki/Greenplum jeden z ciekawszych projektów bazujących na Postgresie). Może lepiej napisz jakich ficzerów Ci tam brakuje w porównaniu np. z MSSQL bo jak na razie to same ogólniki.
PS. W pracy obecnie baza danych ma 80G i pgsql świetnie sobie radzi. Wcześniej było MySQL, który zaczął wymiękać przy już przy 50G.

0

ku przestrodze problem z NOT NULL

1 użytkowników online, w tym zalogowanych: 0, gości: 1