Borysław B.

Borysław B. Mgr inżynier
informatyki,
właściciel Matrix
Reliability

Temat: Porównanie MySQL/MSSQL + ASP.NET

Chodzi o to, że liczba użytkowników systemu będzie prawdopodobnie rosła. Dziś to na pewno 35 tysięcy użytkowników starej wersji systemu, których trzeba obsłużyć. Za dwa, trzy lata może być ich około 50 tysięcy (teoretycznie), a za pięć lat - może nie być wcale produktu na rynku, albo wręcz przeciwnie, może być sto tysięcy użytkowników. Przyszłość jest niezbadana.

Będą dwie grupy użytkowników - roboczo nazwijmy je: admin group i normal user group. Do bazy będą spływały informacje-logi od "normal userów" a admini będą je z bazy odczytywać gdy będzie potrzeba przez interfejs aplikacji ASP.NET. Szacuje, że na jednego "admina" będzie przypadać około 10-15 "normal userów".
Aplikacja ASP.NET będzie pobierała niewielkie ilości danych z serwera - np. imię, nazwisko, adres, oraz logi istotnych zdarzeń normal userów (tych prawdopodobnie będzie około 100 dziennie na każdego użytkownika). Nie wszyscy użytkownicy będą się logowali do systemu, tylko admini.

Nie wiem wciąż, jakiego wyboru dokonać. Mam zbyt małe rozeznanie w tej tematyce.

BTW, mój kolega testował dla mnie MSSQL Express - i stwierdził, że chyba programiści MS powstawiali jakieś sleepy do niego, bo przy bardzo dużych ilościach danych Express zaczął regularnie zwalniać tempo wstawiania do bazy. W wersji komercyjnej nie było zaś takiego zjawiska... Normalny MSSQL okazywał się wolniejszy od MySQL-a.Borysław Bobulski edytował(a) ten post dnia 28.01.11 o godzinie 23:52
Krzysztof Raczkowski

Krzysztof Raczkowski Stała współpraca,
Logifact-Systems Sp.
z o.o.

Temat: Porównanie MySQL/MSSQL + ASP.NET

Borysław Bobulski:
Chodzi o to, że liczba użytkowników systemu będzie prawdopodobnie rosła. Dziś to na pewno 35 tysięcy użytkowników starej wersji systemu, których trzeba obsłużyć. Za dwa, trzy lata może być ich około 50 tysięcy (teoretycznie), a za pięć lat - może nie być wcale produktu na rynku, albo wręcz przeciwnie, może być sto tysięcy użytkowników. Przyszłość jest niezbadana.

Jakieś założenie musisz przyjąć
Będą dwie grupy użytkowników - roboczo nazwijmy je: admin group i normal user group. Do bazy będą spływały informacje-logi od "normal userów" a admini będą je z bazy odczytywać gdy będzie potrzeba przez interfejs aplikacji ASP.NET. Szacuje, że na jednego "admina" będzie przypadać około 10-15 "normal userów".
Aplikacja ASP.NET będzie pobierała niewielkie ilości danych z serwera - np. imię, nazwisko, adres, oraz logi istotnych zdarzeń normal userów (tych prawdopodobnie będzie około 100 dziennie na każdego użytkownika). Nie wszyscy użytkownicy będą się logowali do systemu, tylko admini.

Skoro nie wszyscy korzystają z systemu, to nie nazywaj ich użytkownikami. "Jan Kowaslki" to tylko dana ... niekoniecznie użytkownik - wprowadzasz w błąd :)

Postaraj się oszacować ilość tych prostych zapytań/sek (tych od adminów). Jak szybko będą spływały informacje od "normal userów", jak dużo ich będzie (Express ma ograniczoną wielkość bazy)
Nie wiem wciąż, jakiego wyboru dokonać. Mam zbyt małe rozeznanie w tej tematyce.
>

Hmmm ....
BTW, mój kolega testował dla mnie MSSQL Express - i stwierdził, że chyba programiści MS powstawiali jakieś sleepy do niego, bo przy bardzo dużych ilościach danych Express zaczął regularnie zwalniać tempo wstawiania do bazy. W wersji komercyjnej nie było zaś takiego zjawiska... Normalny MSSQL okazywał się wolniejszy

Zgadza się - Express ma wbudowane ograniczenia - można o nich poczytać.

Co do wyboru ... skonfrontuj go z budżetem, w twoim wypadku być może lepiej wyjdzie kosztowo licencja na procesor.

Co do wyboru samej bazy, jeszcze raz powraca temat budżetu, weź pod uwagę takie aspekty

1) PHP ma mniejsze wymagania odnośnie sprzętu niż ASP (patrz budżet, serwery )
2) PostgreSQL + Linux/FreeBSD - zaoszczędzisz na licencjach, ale być może admin będzie droższy :)
3) A może hosting serwera fizycznego ? Tutaj PostgreSQL + PHP wyszedł by całkiem sensownie cenowo.

--
Pozdrawiam
K.R.
Borysław B.

Borysław B. Mgr inżynier
informatyki,
właściciel Matrix
Reliability

Temat: Porównanie MySQL/MSSQL + ASP.NET

Mam fatalną opinię o tym, jak się tworzy w PHP. Idę w MVC dla ASP.NET, bo podoba mi się model-view-controler, Visual Studio, nowoczesny język C# i bogata biblioteka .NET - takich atrakcji PHP mi nie dostarczy :P Poza tym hosting ASP.NET nie jest taki znowu drogi (mylę się?)

Cały czas zakładamy, że gdy nie mamy pieniędzy to wybieramy MySQL/PostgreSQL bo jest tańszy, a ten pierwszy w dodatku jest szybszy. Jak mamy pieniądze, to z kolei wybieramy MSSQL.

Odłóżmy pieniądze na bok, załóżmy czysto hipotetycznie iż stać mnie na MSSQL, a jego kupno spłynie po mnie jak woda po kaczce. Nie kierujmy się pieniędzmi, niech będą nieistotne.

To co wtedy? MySQL, MS SQL, PostgreSQL? Czym one się w ogóle różnią?Borysław Bobulski edytował(a) ten post dnia 29.01.11 o godzinie 01:22
Krzysztof Raczkowski

Krzysztof Raczkowski Stała współpraca,
Logifact-Systems Sp.
z o.o.

Temat: Porównanie MySQL/MSSQL + ASP.NET

Borysław Bobulski:
Odłóżmy pieniądze na bok, załóżmy czysto hipotetycznie iż stać mnie na MSSQL, a jego kupno spłynie po mnie jak woda po kaczce. Nie kierujmy się pieniędzmi, niech będą nieistotne.

OK - poszalejemy ;)
To co wtedy? MySQL, MS SQL, PostgreSQL? Czym one się w ogóle różnią?Borysław Bobulski edytował(a) ten post dnia 29.01.11 o godzinie 01:22

Jeżeli pieniądze nie są istotne (a co za tym idzie ... możesz mieć sprzęt jaki chcesz :) )... nie bierz MySQL pod uwagę. Z punktu widzenia programisty implementacja SQL + dodatki (stored proc, contrib) są moim zdaniem bogatsze w w MSSQL i PostgreSQL. Warto też zaznajomić się http://www.enterprisedb.com (to taki argument który był kiedyś że PostgreSQL nie ma dobrego płatnego supportu .... - oczywiście przy takiej okazji zapomniano iż jest doskonały bezpłatny :)

Z punktu widzenia skalowalności również obie bazy są lepsze od MySQL. Skalowalność to nie jest test szybkości prostej pętli wykonywanej przez jednego użytkownika na bazie wstawiającej rekordy lub robiącej 'select...'. Poszukaj w sieci różnych opracowań na temat szybkości i działania konkretnego silnika w funkcji ilości równolegle pracujących użytkowników, ilości transakcji/s

Osobiście uważam iż PostgreSQL ma lepiej zrealizowaną współbieżność, bliżej mu tu do Oracle niż MSSQL. Jest to chyba troszkę okupione wydajnością ... ale w większości wypadków bardziej bolą problemy z deadlockami w MSSQL niż troszkę wolniejsze działanie PostgreSQL bez deadlocków. (Wiem wiem powinienem podać link - wybaczcie chwilowo nie mam czasu szukać, można samemu zrobić testy... można też spojrzeć tu http://proitsoft.com.pl/deadlocks_postgresql_mssql.html trochę to leciwe - może przy tej okazji dowiem się co myślicie o takim porównaniu mojego autorstwa :) )

Jeżeli *nix + PostgreSQL to wiedza nieosiągalna (z PostgreSQL na MS Windows dużej/szybkiej bazy bym nie stawiał ...) to pozostaje MS SQL albo Oracle.
Jeżeli również myślisz żeby tanim kosztem (no ale przecież o kosztach nie móiwmy tak ... to skąd ten express ??) na tym samym serwerze postawić jakąś małą hurtownie żeby zagonić do roboty kostki OLAP - to lepszym wyborem będzie MS SQL.

Tak na koniec ... dywagacje w oderwaniu od budżetu są czysto akademickie ... i są oderwane od rzeczywistości (przynajmniej w 99%)

--
Pozdr.
K.R.

Temat: Porównanie MySQL/MSSQL + ASP.NET

Krzysztof Raczkowski:
Michał Krajewski:
pewnie w MySQL jest tak jak w Postgre,
czyli (jak już ktoś napisał) są darmowe, a potem są schody.
Czyli elegancko połączysz się przez zwykłe ADO ale już jakieś Linq> i inne bardziej przyjemne rzeczy odpadają, bo...
bo providery które to umożliwiają są płatne. W dużym systemie brałbym MSSQL, a z dwóch: MySQL, PostgreSQL lepiej imo sprawdzi się ten drugi.

http://npgsql.projects.postgresql.org

Proszę nie stawiać znaku równości pomiędzy MySQL i PostgreSQL, dzieli je przepaść :)

--
Pozdrawiam
K.R.

Nie postawiłem znaku = między nimi, oj nie postawiłem... ;)
A z Npqsql korzystam i wg moich obserwacji nie wspiera ddex. Ale jeśli masz tajemną wiedzę o tym że przy użyciu tego providera da się zrobić np .dbml to prosze o info (może być priv)
Krzysztof Raczkowski

Krzysztof Raczkowski Stała współpraca,
Logifact-Systems Sp.
z o.o.

Temat: Porównanie MySQL/MSSQL + ASP.NET

Michał Krajewski:
Krzysztof Raczkowski:
Michał Krajewski:
pewnie w MySQL jest tak jak w Postgre,
czyli (jak już ktoś napisał) są darmowe, a potem są schody.
Czyli elegancko połączysz się przez zwykłe ADO ale już jakieś Linq> i inne bardziej przyjemne rzeczy odpadają, bo...
bo providery które to umożliwiają są płatne. W dużym systemie brałbym MSSQL, a z dwóch: MySQL, PostgreSQL lepiej imo sprawdzi się ten drugi.

http://npgsql.projects.postgresql.org

Proszę nie stawiać znaku równości pomiędzy MySQL i PostgreSQL, dzieli je przepaść :)

--
Pozdrawiam
K.R.

Nie postawiłem znaku = między nimi, oj nie postawiłem... ;)
A z Npqsql korzystam i wg moich obserwacji nie wspiera ddex. Ale jeśli masz tajemną wiedzę o tym że przy użyciu tego providera da się zrobić np .dbml to prosze o info (może być priv)

Aż tak mocno nie starałem się integrować środowiska z PostgreSQL. Mam opracowany swój własny lekki framework, nie korzystam z EF, NHibernate itp.
Rzuciłem okien na SQLMetal (jeżeli o tym mówimy) - teoretycznie powinien działać, ale pewnie już to przetestowałeś ... :)

--
Pozdrawiam
K.R.
Borysław B.

Borysław B. Mgr inżynier
informatyki,
właściciel Matrix
Reliability

Temat: Porównanie MySQL/MSSQL + ASP.NET

Podobno są jeszcze inne kłopoty z MySQL. Wzrastanie pliku InnoDB. Skasowanie wierszy ze środka takiego pliku nie spowoduje zmniejszenia pliku InnoDB. Zapchają się dyski twarde. Dobrze rozumiem?

Temat: Porównanie MySQL/MSSQL + ASP.NET

Z tym sobie ludzie radzą na różne sposoby: http://forums.mysql.com/read.php?35,121880,121886

Oczywiście zawsze jest to jakiś problem...
Krzysztof Raczkowski

Krzysztof Raczkowski Stała współpraca,
Logifact-Systems Sp.
z o.o.

Temat: Porównanie MySQL/MSSQL + ASP.NET

Borysław Bobulski:
Podobno są jeszcze inne kłopoty z MySQL. Wzrastanie pliku InnoDB. Skasowanie wierszy ze środka takiego pliku nie spowoduje zmniejszenia pliku InnoDB. Zapchają się dyski twarde. Dobrze rozumiem?

Żadna 'normalna' baza nie zmienia rozmiaru pliku (fizycznego na dysku) jak ktoś usuwa rekord ze środka (już nawet DBF tego nie robił :) ) - to bardzo nieefektywne. Ale ... każda powinna mieć narzędzia do przycięcia takiego pliku przez admina.

Jak już poruszyłeś InnoDB i MYISAM ... to warto porównać (można znaleźć w necie) ile kosztuje korzystanie z InnoDB w sensie wydajności. Coś mi się wydaje iż w InnoDB MySQL już przestaje być takim demonem szybkości ...

--
Pozdr.
K.R.

Temat: Porównanie MySQL/MSSQL + ASP.NET

Przemysław R.:
jedyna zaleta MySQL to to że jest darmowy
dalej zaczynają się schody np. z wydajnością bardziej skomplikowanych zapytań

To nie do końca tak. Można korzystać z wersji Community Edition ale jest to obwarowane licencją. Jeśli chcesz mieć funkcjonalność taką jak kupując MS SQL Server (nie mówię tu o Express Edition) to musisz za MySQL zapłacić i też nie małe pieniądze.
Krzysztof Raczkowski

Krzysztof Raczkowski Stała współpraca,
Logifact-Systems Sp.
z o.o.

Temat: Porównanie MySQL/MSSQL + ASP.NET

Piotr Rusoł:
Przemysław R.:
jedyna zaleta MySQL to to że jest darmowy
dalej zaczynają się schody np. z wydajnością bardziej skomplikowanych zapytań

To nie do końca tak. Można korzystać z wersji Community Edition ale jest to obwarowane licencją. Jeśli chcesz mieć funkcjonalność taką jak kupując MS SQL Server (nie mówię tu o Express Edition) to musisz za MySQL zapłacić i też nie małe pieniądze.

Masz na myśli funkcjonalność w sensie silnika czy też otoczkę ? Czy różni się czymś sam silnik w wersji płatnej i community ?

--
Pozdr.
K.R.

Temat: Porównanie MySQL/MSSQL + ASP.NET

Borysławie musisz podać dokładniejszą specyfikację tego, co ta domniemana aplikacja ma robić, jaki jest przewidywany ruch i złożoność zapytań. Inaczej sprowadzamy dyskusję do poziomu "świętej wojny" na temat, co jest lepsze sortowanie przez wstawianie czy QuickSort.

Prosty przykład. Miałem okazję pracować przy aplikacji, która oparta była o Firebird. Przy 20 klientach i bazie 12GB silnik potrafił się całkowicie wysypać, przyciąć (dead lock) albo czasy odpowiedzi były rzędu 1 minuty lub więcej. Główny projektant nie dał się za żadne skarby przekonać, że przekroczyliśmy wydajność bazy i musimy przejść na inny RDBMS (MySQL || PostgreSQL || MSSQL). Motywował to nagłośnionym testem Firebird w którym baza 1T obsługiwała 3 zapytania na sekundę. Tylko już nie doczytał niżej, że schemat bazy, złożoność zapytań i ilość zwracanych rekordów była na poziomie 0,05 - 0,1 tego, co u nas.

Temat: Porównanie MySQL/MSSQL + ASP.NET

Krzysztof Raczkowski:
Piotr Rusoł:
Przemysław R.:
jedyna zaleta MySQL to to że jest darmowy
dalej zaczynają się schody np. z wydajnością bardziej skomplikowanych zapytań

To nie do końca tak. Można korzystać z wersji Community Edition ale jest to obwarowane licencją. Jeśli chcesz mieć funkcjonalność taką jak kupując MS SQL Server (nie mówię tu o Express Edition) to musisz za MySQL zapłacić i też nie małe pieniądze.

Masz na myśli funkcjonalność w sensie silnika czy też otoczkę ? Czy różni się czymś sam silnik w wersji płatnej i community ?

--
Pozdr.
K.R.

Oczywiście mam na myśli otoczkę.

Natomiast nie zdziwił bym się gdy by poszczególne wersje różniły się implementacją na przykład w zakresie strategii cashowania czy wielowątkowości. Ale to tylko moje uzasadnione domysły podług zasady to SCANIA i to SCANIA tylko jedna przewiezie tonę a druga 10 ton.

konto usunięte

Temat: Porównanie MySQL/MSSQL + ASP.NET

Piotr Rusoł:
Przemysław R.:
jedyna zaleta MySQL to to że jest darmowy
dalej zaczynają się schody np. z wydajnością bardziej skomplikowanych zapytań

To nie do końca tak. Można korzystać z wersji Community Edition ale jest to obwarowane licencją. Jeśli chcesz mieć funkcjonalność taką jak kupując MS SQL Server (nie mówię tu o Express Edition) to musisz za MySQL zapłacić i też nie małe pieniądze.

z drugiej strony za taką kasę mogę mieć lepszy produkt, więc gdzie tu biznes?

Temat: Porównanie MySQL/MSSQL + ASP.NET

Przemysław R.:
Piotr Rusoł:
Przemysław R.:
jedyna zaleta MySQL to to że jest darmowy
dalej zaczynają się schody np. z wydajnością bardziej skomplikowanych zapytań

To nie do końca tak. Można korzystać z wersji Community Edition ale jest to obwarowane licencją. Jeśli chcesz mieć funkcjonalność taką jak kupując MS SQL Server (nie mówię tu o Express Edition) to musisz za MySQL zapłacić i też nie małe pieniądze.

z drugiej strony za taką kasę mogę mieć lepszy produkt, więc gdzie tu biznes?

Masz rację. Właśnie o to chodzi, że nie podano jak do tej pory mierzalnych parametrów, że by można było stwierdzić czy w danym przypadku CE wystarczy, trzeba będzie zapłacić, czy może jak już płacić i działać w środowisku MS to lepiej kupić MSSQL i nie kombinować.

konto usunięte

Temat: Porównanie MySQL/MSSQL + ASP.NET

Piotr Rusoł:
Oczywiście mam na myśli otoczkę.

Natomiast nie zdziwił bym się gdy by poszczególne wersje różniły się implementacją na przykład w zakresie strategii cashowania czy wielowątkowości. Ale to tylko moje uzasadnione domysły podług zasady to SCANIA i to SCANIA tylko jedna przewiezie tonę a druga 10 ton.

Silniki MS SQL (z wyjatkiem Enterprise) sa identyczne, niektore opcje sa niedostepne, z waznych nie ma obslugi kompresji backupow (mozna dokupic plugin za ok. 100zl) i nie ma skalowania/replikacji. Jak ktos jeszcze tego uzywa to sa ograniczenia w full text search, ale nie pamietam co dokladnie.

Piszac o "ograniczeniach" wezmy pod uwage, ze takie funkcje w pelnych wersjach MySQL nie sa nawet dostepne i trzeba kupowac specjalistyczne, bardzo drogie (dziesiatki tysiecy funtow) rozszerzenia.

Fakt jest taki, ze Sql Express jest swietna, niemal bezkonkurencyjna baza. Swietne w niej jest to, ze gdy przestarcza wystarczac wypozyczasz pelna baze od Microsoftu za grosze: 45zl/m-c za Web Edition (1 processor) czy 10zl/m-c/user za Workgroupa to naprawde niski koszt. Jak przestaje wystarczac Web (Workgroup) edition to mamy na tyle duzy biznes, ze wydatek na Standarda 750zl/m-c nie powinno byc problemem. Podejrzewam, ze i tak bedzie to ulamek innych kosztow (redundancy, backup etc). Tak czy inaczej jest to najtansza baza danych w swojej klasie.

Nie zastanawiac sie tylko uzywac, jest za darmoche! :)

Temat: Porównanie MySQL/MSSQL + ASP.NET

Sebastian Pienio:
Piotr Rusoł:
Oczywiście mam na myśli otoczkę.

Natomiast nie zdziwił bym się gdy by poszczególne wersje różniły się implementacją na przykład w zakresie strategii cashowania czy wielowątkowości. Ale to tylko moje uzasadnione domysły podług zasady to SCANIA i to SCANIA tylko jedna przewiezie tonę a druga 10 ton.

Silniki MS SQL (z wyjatkiem Enterprise) sa identyczne, niektore opcje sa niedostepne, z waznych nie ma obslugi kompresji backupow (mozna dokupic plugin za ok. 100zl) i nie ma skalowania/replikacji. Jak ktos jeszcze tego uzywa to sa ograniczenia w full text search, ale nie pamietam co dokladnie.

Piszac o "ograniczeniach" wezmy pod uwage, ze takie funkcje w pelnych wersjach MySQL nie sa nawet dostepne i trzeba kupowac specjalistyczne, bardzo drogie (dziesiatki tysiecy funtow) rozszerzenia.

Fakt jest taki, ze Sql Express jest swietna, niemal bezkonkurencyjna baza. Swietne w niej jest to, ze gdy przestarcza wystarczac wypozyczasz pelna baze od Microsoftu za grosze: 45zl/m-c za Web Edition (1 processor) czy 10zl/m-c/user za Workgroupa to naprawde niski koszt. Jak przestaje wystarczac Web (Workgroup) edition to mamy na tyle duzy biznes, ze wydatek na Standarda 750zl/m-c nie powinno byc problemem. Podejrzewam, ze i tak bedzie to ulamek innych kosztow (redundancy, backup etc). Tak czy inaczej jest to najtansza baza danych w swojej klasie.

Nie zastanawiac sie tylko uzywac, jest za darmoche! :)


Ostatnimi czasy wypadłem troszkę z tematu jeśli chodzi o "cenniki MS" ale faktycznie jakieś 2 tygodnie temu przyszedł do mnie znajomy i mówi, że za grosze dostanie w dzierżawę licencje na WinXP i Win7. Co prawda były tam różne dzikie klocki w umowie licencyjne, które mi osobiście się nie podobały ale ogólnie MS miło zaskoczył zmianą polityki. Nie wiedziałem, że to też się tyczy MS SQL.

konto usunięte

Temat: Porównanie MySQL/MSSQL + ASP.NET

Piotr Rusoł:
Ostatnimi czasy wypadłem troszkę z tematu jeśli chodzi o "cenniki MS" ale faktycznie jakieś 2 tygodnie temu przyszedł do mnie znajomy i mówi, że za grosze dostanie w dzierżawę licencje na WinXP i Win7. Co prawda były tam różne dzikie klocki w umowie licencyjne, które mi osobiście się nie podobały ale ogólnie MS miło zaskoczył zmianą polityki. Nie wiedziałem, że to też się tyczy MS SQL.

FYI dzierzawa oprogramowania dziala od 2008 roku, od 2009 jest w pelni zintegrowana z Microsoft Partner Network. Mozna wynajac wiekszosc rzeczy, Windowsy (XP/7/2008), bazy danych, Exchange, MS Office, Dynamics, Visual Studio, wszystko w roznych licencjach (np. na wirtualki, per user, per processor). Biorac pod uwage, ze po 3-4 latach oprogramowanie i tak wymienisz lepiej wynajac VS2010pro za 73zl/m-c niz kupic za 3800zl (po 3 latach wydasz na wynajem 2600zl, a jak wyjdzie nowsza wersja to masz od razu wliczone w wynajem. Korzystam od poczatku 2009 i sprawdza sie super, polecam :)

Następna dyskusja:

[ C# ASP NET 4.0 ] Projekt ...




Wyślij zaproszenie do