MiGo2
2.02.2013, 21:48:21
Cześć,
mam mały dylemat związany z wyborem silnika bazy danych do napędzania systemu "finansowego" opartego na transakcjach. Technicznie chcę operować zbiorem danych, który może urosnąć nawet do 20GB w jednej bazie, z wykorzystaniem funkcji i procedur operujących na tabelach tymczasowych, o select/insert/update opartych o union, left/inner/outer join nie wspominając.
Wiem co potrafi SQL Server 2008/2012 ("killerem" nie jestem ale radzę sobie), tylko cena oprogramowania "wyrywa z butów". O wersji Express wiem, ale nie chcę zapominać ile kosztuje przekroczenie "limitów".
Wiem co potrafi MySQL, i m.in. ze względu na "kłopociki" przy zmianach wersji, nie biorę go pod uwagę.
Nie wiem co teraz reprezentuje sobą PostgreSQL(film "urwał mi się" przy 7.0) i w tym zakresie poproszę o rade praktyków - zaryzykować czas na przestawienie się z T-SQL na PL-SQL (który trochę "zalatuje" Oracle'm którego nie lubię)?
Wydajność nie jest kluczowa (sprzęt jest tani), ale istotne jest dla mnie "usability" na etapie programowania i administracji.
Przede wszystkim chciałbym wiedzieć:
- co mnie czeka gdy będę musiał podnieść wersję Postgres'a z 9.0 na np 9.2 - dump danych i ponowny import? a może jest jakieś "cywilizowane" narzędzie/mechanizm posługujące się funkcją "Backup/Restore"?
- czy pgAdmin umożliwia debugowanie procedur (oraz ew. podgląd planu zapytania)
Front-end do bazy (asp.net mvc lub zend) oraz OS (WinSvr lub Debian) to już sprawa drugorzędna (na obecnym etapie).
Pozdrawiam
Michał
CuteOne
3.02.2013, 22:46:26
Jeżeli lecisz po kosztach to logicznym wyborem jest mysql - bezpłatny + większość programistów wie z czym to się je. Jeżeli stawiasz na wydajność to oczywiście mssql. Zastanawia mnie twój argument o zmianach wersji, w końcu kto normalny zmienia cały silnik tylko dlatego, że pojawiła się nowa wersja?
Wykrywacz
4.02.2013, 00:10:01
Zaszokowała mnie twoja historia. Powiedź gdzie wyczytałeś o karach za przekroczenie wielkości DB w MSSQL Express...
MySQL to taki access. Duzo w nim nie zrobisz (zartuje, nie chce robic z tego tematu flame wars)
A jesli to ma byc system finansowy, to pewnie bedziesz chcial robic fikusne raporty i tutaj PostgreSQL ze swoimi window functions bedzie milym zaskoczeniem.
Przyznam szczerze, ze od czasu przesiadki na Postgresa jakies 5 lat temu przestalem sledzic rozwoj MySQLa. Po prostu nie wyobrazam juz sobie powrotu do MySQL. Nie ta skala mozliwosci.
Z tematow, ktore Cie interesuja:
1. aktualizacja silnika
Od wersji bodajze 9.0 jest pg_upgrade, ktorego po prostu odpalasz i to wszystko. Zadnych dumpow i importow nie musisz robic
2. wydajnosc
Z tym troche gorzej na swiezej instalacji, bo domyslne ustawienia sa takie, zeby Postgres ruszyl nawet na slabym sprzecie. Trzeba troche posiedziec nad konfiguracja i sie na tym znac, co nie jest takie proste. Z drugiej strony jest pg_tune, ktory rowniez wystarczy, ze uruchomisz i Ci Postgres zaproponuje optymalne ustawienia pod sprzet, ktory posiadasz. Dla moich potrzeb wystarczylo
3. pgAdmin
Plan zapytania jest standardowym narzedziem analizy, wiec tutaj wszystko masz. Zarowno explain, jak i analyze (nie wiem, czy w MySQL jest to rozdzielone)
PostgreSQL wymaga jednak sporo czasu, zeby go dobrze opanowac. Jest tez spory problem ze wsparciem polskiej spolecznosci (jesli to dla Ciebie istotne), bo akurat w Polsce jest on raczej rzadko wykorzystywany w polaczeniu z PHP. Bedziesz musial szukac pomocy na zewnatrz
Moim zdaniem, jezeli to ma byc jednorazowy projekt i nie bardzo masz czas/ochote na nauke (a uwierz, ze pol roku to za malo), to moim zdaniem nie warto, zebys instalowal Postgresa. Szczegolnie jesli Oracle'a nie lubisz. Bedziesz mial tez problem ze znalezieniem programistow i sensownego hostingu
MiGo2
4.02.2013, 12:14:36
@6nom:
dzięki za konkret. PHP nie powinien być problemem, bo jego zadanie będzie względnie proste: przekazać parametry do procedury "inicjującej" przetwarzanie.
@Wykrywacz:
z całym szacunkiem, ale przesadziłeś. Przeczytaj raz jeszcze to co napisałem ("nie chcę zapominać ile kosztuje przekroczenie 'limitów' ") i rzuć okiem na cennik wersji MS SQL 2012 Standard. Czy ja gdzieś napisałem "kara"?
@CutOne:
MySQL po prostu nie nadaje się do tego co chcę zrobić. Co do zmian wersji oprogramowania: większe firmy robią to, choćby ze względów bezpieczeństwa, albo przy okazji zmian sprzętowych, zmiany OS, ale to temat na większe wypracowanie.
Michał
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.