Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

6 Stron V  « < 3 4 5 6 >  
Reply to this topicStart new topic
> PostgreSQL vs MySQL
Jarod
post 5.09.2007, 21:58:35
Post #81





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

Ostrzeżenie: (0%)
-----


@SongoQ: A jak oceniasz triggery i procedury składowane w mysqlu? W manualu mysqla bardzo skromnie napisali o triggerach.


--------------------
”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335)
Go to the top of the page
+Quote Post
Piniek
post 30.12.2007, 01:47:21
Post #82





Grupa: Przyjaciele php.pl
Postów: 463
Pomógł: 49
Dołączył: 27.12.2007
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Porównanie popularnych silników baz danych

Nazwa MySQL
nazwa licencji: GPL z wyłączeniem FOSS
darmowa do zastosowań komercyjnych: NIE
rozmiar plików ze źródłami:18.5 MB
języki proceduralne:NIE
własne typy danych:NIE
max. liczba kolumn w wierszu:3398
max. rozmiar rekordu:64 KB
max. wielkość BLOB'a (mógly by mi ktos powiedziec co to??):4 GB

Nazwa PostgreSQL 8.0.2
nazwa licencji: BSD
darmowa do zastosowań komercyjnych: TAK
rozmiar plików ze źródłami:10.2 MB
języki proceduralne:TAK
własne typy danych:TAK
max. liczba kolumn w wierszu:w zależności od typu danych od 250 do 1600
max. rozmiar rekordu:1.6 TB
max. wielkość BLOB'a:4 GB

Moze to cos wniesie do dyskusji znalazlem to na wikibooks oto link link

Pozdrawiam mam nadzieje ze pomoglem. Sam sie zastanawiam czego uzywac ;P

I przepraszam za ewntualne błędy ale o 1:47 nie che mi sie poprawiac winksmiley.jpg


--------------------
Go to the top of the page
+Quote Post
northwest
post 8.07.2008, 22:32:54
Post #83





Grupa: Zarejestrowani
Postów: 787
Pomógł: 1
Dołączył: 17.09.2004

Ostrzeżenie: (10%)
X----


Mam do zrobienia program który będzie zapisywał ok 5.000 rekordów na minutę. Docelowy rozmiar bazy to ok 8Gb.
Dane będą też często zczytywane z bazy z poziomu stron www.
Która baza lepiej nada się do tego projektu (PostgreSQL czy MySQL)questionmark.gif
Go to the top of the page
+Quote Post
Sedziwoj
post 9.07.2008, 11:37:05
Post #84





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


@northwest
Moim zdaniem to post nie jest w odpowiednim miejscu.
Do tego jeśli zapisujesz 5000 rekordów na minutę, to jakim cudem masz określony docelowy rozmiar bazy?


--------------------
Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami.
Go to the top of the page
+Quote Post
northwest
post 9.07.2008, 11:40:07
Post #85





Grupa: Zarejestrowani
Postów: 787
Pomógł: 1
Dołączył: 17.09.2004

Ostrzeżenie: (10%)
X----


to jest przypuszczalny - po prostu w pewnym momencie rekordy starsze będą usuwane...
Go to the top of the page
+Quote Post
nevt
post 9.07.2008, 12:52:35
Post #86





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

Ostrzeżenie: (0%)
-----


Witam - to bardzo ciekawy wątek, ale też strasznie przestarzały ...
Może wielu wprowadzić niepotrzebnie w błąd.

Jestem wolnym strzelcem, więc jestem skazany na MySQL, głównie ze względu na popularność w hostingu - chociaż PostgreSQL jest również coraz popularniejsze.
Z drugiej strony - MySQL został przejęty prze SUN i coraz dynamiczniej się rozwija. Ma wszystko co jest potrzebne do małej i średniej skali projektów. A przy naprawdę dużych projektach i tak następuje migracja do profesjonalnych rozwiązań w rodzaju ORACLE.

Ponieważ nie używam w swoich projektach PG - nie mogę sie kompetentnie wypowiadać na jego temat. W związku z tym mam wielką prośbę. Czy ktoś naprawdę zorientowany poświęciłby chwilę swojego cennego czasu i przedstawił tu AKTUALNE zestawienie możliwości oraz różnic między bieżącymi wersjami MySQL i PostgreSQL questionmark.gif

Myślę, że zapewni sobie niemierną wdzięczność setek użytkowników - pomógł gwarantowane smile.gif

PS. Chodzi o coś więcej niż pokazał kolega Piniek - tyle to sobie w wiki znalazłem...

Pozdrawiam wszystkich forumowiczów.


--------------------

-
Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... -
Go to the top of the page
+Quote Post
phpion
post 11.07.2008, 06:24:36
Post #87





Grupa: Moderatorzy
Postów: 6 065
Pomógł: 859
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




W odpowiedzi na powyższy post podam link do problemu jaki miałem z MySQL. Chodzi mianowicie o możliwość uruchomienia jednego triggera przy kilku zdarzeniach. W PostgreSQL (i z tego co wiem również w Oracle) robi się to poprzez:
  1. ... AFTER INSERT OR UPDATE OR DELETE ...

Takie coś nie działa w MySQL. Na forum mysql.com otrzymałem jednoznaczną odpowiedź, że nie mogę tak zdefiniować triggera. Równocześnie chciałem założyć 3 osobne triggery uruchamiane przy 3 różnych zdarzeniach. I co? Jajco. A jakie chocki-klocki się działy to zapraszam do lektury postu:
http://forum.php.pl/Trigger_AFTER_INSERT_O...ETE_t96283.html
Go to the top of the page
+Quote Post
jezoo
post 13.10.2008, 20:41:46
Post #88





Grupa: Zarejestrowani
Postów: 92
Pomógł: 3
Dołączył: 4.04.2006

Ostrzeżenie: (0%)
-----


na te stronie: http://www.wikivs.com/wiki/MySQL_vs_PostgreSQL sa opisane roznice oraz... ankieta i jak narazie PostgreSQL KROLUJE tongue.gif

mysql: 34% (1119)
PostgreSQL: 66% (2191)

Od siebie smile.gif

ja kiedys musialem stworzy tzw 'klastry' chcialem uruchomic kilka baz osobno na roznych portach i co sie okazalo, w dokumentacji mysql znalazlem iz klaster bazodanowy zaklada sie poprzez 'CREATE DATABASE' co mnie rozbawilo, natomiast w PostgreSQL, co mnie spodobalo sie i w koncu to czego chcialem i oczekiwalem od nie komercyjnej DB, czyli elastycznosc, mozna robic to co sie chce (no moze przesadzilem, ale ja tak to odbieram winksmiley.jpg ) wracajac do klastrow, tworzy sie je w banalny sposob w 3 krokach:
1) stworzenie katalogu
2) zmiana chown;a na postgres i chmod na 700
3) initdb i run
i koniec smile.gif

co jeszcze, w PostgreSQL jest typ INET czyli baza sama sprawdza czy wprowadzana wartosc to adres IP, wartosci walutowe.
jednym slowem, cud miod i orzeszki smile.gif

Ten post edytował jezoo 13.10.2008, 20:42:10
Go to the top of the page
+Quote Post
phpion
post 18.05.2009, 19:49:56
Post #89





Grupa: Moderatorzy
Postów: 6 065
Pomógł: 859
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Przed chwilą przeprowadziłem wstępne testy wydajnościowe MySQL (5.1.33) vs PostgreSQL (8.3.1). Test opierał się na cyklicznym (10 razy) wykonaniu JOINa dla tabel użytkowników (100 000 rekordów) oraz komentarzy (1 000 000 rekordów). Dane zostały wcześniej wygenerowane losowo w PHP i w każdym przypadku wyglądały tak samo. Na polu komentarz.id_uzytkownika został założony indeks. Poniżej zamiesczam wyniki uzyskane klasą Benchmark z repozytorium PEAR:

MySQL (MyISAM): 0,022767
MySQL (InnoDB): 21,507910
PostgreSQL: 2,500184

Różnice jak widać są zasadnicze... Wnioski?
MyISAM jest bajecznie szybki ale nie oferuje nic ciekawego poza wyszukiwaniem pełnotekstowym. InnoDB miażdży powolnością... PostgreSQL - wydaje się być złotym środkiem smile.gif

Ot taka ciekawostka.
Go to the top of the page
+Quote Post
nieraczek
post 21.05.2009, 07:13:43
Post #90





Grupa: Zarejestrowani
Postów: 405
Pomógł: 6
Dołączył: 12.01.2007

Ostrzeżenie: (0%)
-----


A ciekawe czy MySQL wkrótce nie zakończy istnienia jak Oracle go przejął....
Go to the top of the page
+Quote Post
nospor
post 21.05.2009, 07:18:58
Post #91





Grupa: Moderatorzy
Postów: 34 975
Pomógł: 5839
Dołączył: 27.12.2004




@phpion

Cytat
Na polu komentarz.id_uzytkownika został założony indeks

A klucz obcy byl tez czy nie?
Mozesz pokazac to zapytanie?


--------------------

Najlepsze kawałki programistyczne || Dowcipy o informatykach || Forum PHP dla opornych
Klasy: Pager (stronicowanie) | Cache | ShoutBox (Chat) | Widok | Ładne url'e

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
phpion
post 21.05.2009, 08:59:51
Post #92





Grupa: Moderatorzy
Postów: 6 065
Pomógł: 859
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(nospor @ 21.05.2009, 08:18:58 ) *
A klucz obcy byl tez czy nie?

Tak. Dla PostgreSQL oraz dla MySQL InnoDB klucz obcy został zdefiniowany. Dla MySQL MyISAM nie robiłem tego z prostej przyczyny: i tak więzy integralności są ignorowane.

Cytat(nospor @ 21.05.2009, 08:18:58 ) *
Mozesz pokazac to zapytanie?

Jasne, ogólnie cały test wyglądał tak:
  1. <?php
  2.  
  3. require_once 'Benchmark/Timer.php';
  4.  
  5. //$db = new PDO('mysql:dbname=test_baz_danych_myisam', 'root', '');
  6. //$db = new PDO('mysql:dbname=test_baz_danych_innodb', 'root', '');
  7. $db = new PDO('pgsql:dbname=test_baz_danych', 'postgres', 'postgres');
  8.  
  9. $timer = new Benchmark_Timer(true);
  10.  
  11.  
  12. for ($i=0; $i<10; $i++) {
  13.    $db->query('SELECT COUNT(*) FROM comment'); // zwraca liczbę 1000000
  14. }
  15.  
  16. $timer->setMarker('COUNT');
  17.  
  18. for ($i=0; $i<10; $i++) {
  19.    $db->query('SELECT * FROM comment JOIN user ON comment.user_id=user.id WHERE comment.user_id=1'); // 13 rekordów
  20. }
  21.  
  22. $timer->setMarker('JOIN');
  23.  
  24. $timer->display();
  25. ?>
Go to the top of the page
+Quote Post
nospor
post 21.05.2009, 09:08:03
Post #93





Grupa: Moderatorzy
Postów: 34 975
Pomógł: 5839
Dołączył: 27.12.2004




a jak czasowo bedzie to wygladac dla takiego zapytania:
  1. <?php
  2. $db->query('SELECT * FROM user left join comment ON comment.user_id=user.id WHERE user.id=1');
  3. ?>

?

ps: zakladam ze ID to klucze glowne i mają indexy?


--------------------

Najlepsze kawałki programistyczne || Dowcipy o informatykach || Forum PHP dla opornych
Klasy: Pager (stronicowanie) | Cache | ShoutBox (Chat) | Widok | Ładne url'e

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
phpion
post 21.05.2009, 09:22:53
Post #94





Grupa: Moderatorzy
Postów: 6 065
Pomógł: 859
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Z tego co się orientuję to dla kluczy głównym nie ma potrzeby zakładania indeksów winksmiley.jpg Swoje zapytanie specjalnie napisałem z użyciem zwykłego indeksu, a nie klucza głównego - żeby było trudniej smile.gif hehe.

Wyniki dla Twojego zapytania (już bez COUNT):
MyISAM: 0.016517
InnoDB: 0.017046
PostgreSQL: 0.006440

Dane uzyskałem po 5 odświeżeniach strony dla każdego przypadku.

Skąd takie różnice w wywołaniach w stosunku do poprzedniego testu? Brakuje tu zapytania z COUNT. Z nim wyniki przedstawiają się już nieco gorzej:
MyISAM: 0.028539
InnoDB: 23.817434
PostgreSQL: 2.852854

Widać więc, że zarówno w przypadku InnoDB jak i PostgreSQL COUNT(*) znacząco wpływa na wydajność zapytania, z czego w przypadku InnoDB bardzo drastycznie.

Na koniec jeszcze wyniki dla COUNT(id) zamiast COUNT(*):
MyISAM: 0.035867
InnoDB: 22.756677
PostgreSQL: 3.391338 <- wynik utrzymywał się na tym poziomie
Go to the top of the page
+Quote Post
nospor
post 21.05.2009, 09:27:24
Post #95





Grupa: Moderatorzy
Postów: 34 975
Pomógł: 5839
Dołączył: 27.12.2004




no z tym COUNT cos masz bobola jakiegos. zapytanie:
$db->query('SELECT COUNT(*) FROM comment');
nie ma prawa tyle czasu sie wykonywac. Wykonuje je na zdecydowanie wiekszych danych i jest to ulamek sekundy.


--------------------

Najlepsze kawałki programistyczne || Dowcipy o informatykach || Forum PHP dla opornych
Klasy: Pager (stronicowanie) | Cache | ShoutBox (Chat) | Widok | Ładne url'e

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
phpion
post 21.05.2009, 09:36:51
Post #96





Grupa: Moderatorzy
Postów: 6 065
Pomógł: 859
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Faktycznie. Sprawdziłem COUNT(*) z poziomu MySQL Query Browser + PgAdminIII i wyniki są zdecydowanie inne:
MyISAM: 0,0296 (0,0011)
InnoDB: 0,0141 (1,8876)
PostgreSQL: 0,375

Czyli co - wina PDO? Zmiana na mysql_connect + mysql_select_db + mysql_query nie przyniosła żadnej poprawy.

Swoją drogą nie bardzo wiem co oznaczają czasy podane przy MySQL. Drugi to chyba faktycznie czas, po jakim pokazywany jest wynik zapytania. Ale pierwszy czas (krótszy dla InnoDB)?

Ten post edytował phpion 21.05.2009, 09:40:05
Go to the top of the page
+Quote Post
nospor
post 21.05.2009, 09:44:34
Post #97





Grupa: Moderatorzy
Postów: 34 975
Pomógł: 5839
Dołączył: 27.12.2004




tak czy siak masz cos na linii php - baza i jako tako nie ma nic wspolmego z tym tematem, wiec jesli chcesz kontynowac to lepiej w innym temacie winksmiley.jpg


--------------------

Najlepsze kawałki programistyczne || Dowcipy o informatykach || Forum PHP dla opornych
Klasy: Pager (stronicowanie) | Cache | ShoutBox (Chat) | Widok | Ładne url'e

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
bełdzio
post 21.05.2009, 17:45:12
Post #98





Grupa: Zarejestrowani
Postów: 690
Pomógł: 81
Dołączył: 6.04.2005
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


Cytat(nieraczek @ 21.05.2009, 08:13:43 ) *
A ciekawe czy MySQL wkrótce nie zakończy istnienia jak Oracle go przejął....

Twórca mySQL aktualnie tworzy zastępce dla mySQL, tak więc nawet jak zniknie to na jego miejsce wskoczy nowy produkt smile.gif


--------------------
Go to the top of the page
+Quote Post
batman
post 21.05.2009, 18:09:16
Post #99





Grupa: Moderatorzy
Postów: 2 913
Pomógł: 267
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Cytat(nieraczek @ 21.05.2009, 08:13:43 ) *
A ciekawe czy MySQL wkrótce nie zakończy istnienia jak Oracle go przejął....

Cytat(bełdzio @ 21.05.2009, 18:45:12 ) *
Twórca mySQL aktualnie tworzy zastępce dla mySQL, tak więc nawet jak zniknie to na jego miejsce wskoczy nowy produkt smile.gif

Nie zakończy swojego istnienia. Nawet się rozwinie. Zapowiedziana została wersja 5.4 (teraz jest beta do ściągnięcia), w której znacząco poprawiono wydajność. Poza tym obiło mi się o uszy, że silnik InnoDb zostanie zastąpiony czymś innym.
Należy również pamiętać, że kupując Sun-a, Oracle stał się dostawcą baz danych klasy entrprice oraz małych baz danych dla niewielkich odbiorców. Cytując dobrą polską komedię - "Nie zabijasz kury, która ma złote jaja." winksmiley.jpg


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
--------------------
blog
Kuchnia Kopytka
www.wykangurzeni.pl
Go to the top of the page
+Quote Post
phpion
post 10.12.2009, 12:02:52
Post #100





Grupa: Moderatorzy
Postów: 6 065
Pomógł: 859
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




W sieci pojawiło się świeże porównanie MySQL oraz PostgreSQL:
http://blog.taragana.com/index.php/archive...arative-review/
Go to the top of the page
+Quote Post

6 Stron V  « < 3 4 5 6 >
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 17.01.2020 - 19:50