Różnice pomiędzy MySQL i SQL Server [zamknięty]

Jestem ASP.NET programista, który wykorzystał Microsoft SQL Server do wszystkich moich potrzeb bazodanowych (zarówno w pracy, jak i w projektach osobistych).

Rozważam wypróbowanie stosu lampy do niektórych moich osobistych projektów.

Jakie są główne różnice między MySQL i SQL Server? Czy używanie procedur składowanych jest powszechną praktyką w MySQL?

Jakieś rady lub zasoby, które poleciłbyś, aby pomóc mi z przełączeniem?

Do tych, którzy mają doświadczenie z czy są jakieś brakujące cechy MySQL?
Author: DineshDB, 2008-08-14

12 answers

Jedną z rzeczy, na którą musisz uważać, są dość poważne różnice w sposobie implementacji składni SQL Server i MySQL.

Oto ładne Porównanie różnych implementacji SQL .

Na przykład, spójrz na sekcję top-N. W MySQL:

SELECT age
FROM person
ORDER BY age ASC
LIMIT 1 OFFSET 2

W Sql Server (T-SQL):

SELECT TOP 3 WITH TIES *
FROM person
ORDER BY age ASC
 132
Author: Jeff Atwood,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-10 08:23:29

Wiele komentarzy tutaj brzmi bardziej jak religijne argumenty niż Prawdziwe życiowe stwierdzenia. Pracowałem od lat zarówno z MySQL i MSSQL i oba są dobrymi produktami. Wybrałbym MySQL głównie w oparciu o środowisko, nad którym pracujesz. Większość projektów open source korzysta z MySQL, więc jeśli pójdziesz w tym kierunku MySQL jest Twój wybór. Jeśli rozwijasz coś z. Net wybrałbym MSSQL, nie dlatego, że jest dużo lepszy, ale tylko dlatego, że większość ludzi tego używa. Aktualnie jestem na projekt, który wykorzystuje ASP.NET z MySQL i C#. Działa idealnie.

 45
Author: Remy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-25 09:54:22

Nie mogę uwierzyć, że nikt nie wspomniał, że MySQL nie obsługuje poleceń common Table Expressions (CTE) / "with". To dość irytująca różnica.

 20
Author: ely,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-12 19:18:08

MySQL jest bardziej narażony na problemy z uszkodzeniem bazy danych i nie naprawia ich automatycznie, gdy się pojawią. Pracuję z MSSQL od wersji 6.5 i nie pamiętam problemu z uszkodzeniem bazy danych, biorąc bazę w trybie offline. Kilka razy pracowałem z MySQL w środowisku produkcyjnym, problem z korupcją bazy danych wziął całą bazę w trybie offline, dopóki nie uruchomiliśmy magiczne" proszę naprawić mój uszkodzony indeks " rzecz z wiersza poleceń.

Transakcja i dziennikarstwo MSSQL system, z mojego doświadczenia, obsługuje prawie wszystko - w tym cykl zasilania lub awarię sprzętu-bez uszkodzenia bazy danych, a jeśli coś się popsuje, naprawia to automatycznie.

To było moje doświadczenie i byłbym szczęśliwy słysząc, że to zostało naprawione lub robimy coś źle.

Http://dev.mysql.com/doc/refman/6.0/en/corrupted-myisam-tables.html

Http://www.google.com/search?q=site%3Abugs.mysql.com + index + corruption

 14
Author: Jon Galloway,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-20 16:28:51

Szczerze mówiąc, nie mogę znaleźć ani jednego powodu, aby używać MySQL zamiast MSSQL. Problem wcześniej był koszt, ale SQL Server 2005 Express jest bezpłatny i istnieje wiele firm hostingowych, które oferują pełny hosting z sql server za mniej niż $5.00 miesięcznie.

MSSQL jest łatwiejszy w użyciu i posiada wiele funkcji, które nie istnieją w MySQL.

 7
Author: Abdu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-09 04:51:26

Wszystko w MySQL wydaje się być zrobione bliżej metalu niż w MSSQL, a dokumentacja traktuje to w ten sposób. Szczególnie w przypadku optymalizacji musisz zrozumieć, w jaki sposób indeksy, konfiguracja systemu i optymalizator współdziałają w różnych okolicznościach.

"optymalizator" jest bardziej parserem. W MSSQL twój plan zapytań jest często niespodzianką(Zwykle dobrą, czasami nie). W MySQL robi to, o co prosiłeś, tak, jak tego oczekiwałeś. Czyli ty sam potrzeba głębokiego zrozumienia różnych sposobów, w jakie można to zrobić.

Nie zbudowany wokół dobrego modelu transakcji(domyślny silnik MyISAM).

Konfiguracja systemu plików to twój problem.

Cała konfiguracja bazy danych jest Twoim problemem - szczególnie różne rozmiary pamięci podręcznej.

Czasami wydaje się, że najlepiej jest myśleć o nim jako ad hoc, gloryfikowany isam. Codd i randka nie mają tu większego znaczenia. Powiedzieliby to bez wstydu.

 7
Author: dkretz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-30 19:13:13

Myślę, że jedną z głównych rzeczy, na którą należy uważać, jest to, że wersje wcześniejsze niż MySQL 5.0 nie miały widoków, wyzwalaczy i procedur składowanych.

Więcej o tym jest wyjaśnione w MySQL 5.0 Strona pobierania .

 5
Author: Jon Limjap,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-10 08:28:30

Oba są produktem DBMS SQL server jest aplikacją komercyjną, podczas gdy MySql jest aplikacją opensouces.Oba produkty zawierają podobną funkcję, jednak sql server powinien być używany dla rozwiązania korporacyjnego, podczas gdy mysql może pasować do mniejszej implementacji.jeśli potrzebujesz funkcji takich jak odzyskiwanie, replikacja,granalar security i significant, potrzebujesz sql server

MySql zajmuje mniej miejsca na dysku i zużywa mniej pamięci i procesora niż SQL server

 4
Author: prince,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-08 14:10:06

Ktoś ma jakieś dobre doświadczenia z "port" bazy danych z serwera SQL do MySQL?

To powinno być dość bolesne! Zamieniłem wersje MySQL z 4.x do 5.x i różne wypowiedzi nie działały już tak jak kiedyś. Analizator zapytań został "ulepszony", więc oświadczenia, które wcześniej były dostrojone pod kątem wydajności, nie działały już zgodnie z oczekiwaniami.

Lekcja z pracy z bazą danych MySQL 500GB: to subtelny temat i wszystko inne ale banalne!

 3
Author: dlinsin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-14 11:24:57

@ abdu

Najważniejsze, że MySQL ma ponad MSSQL, to obsługa stref czasowych - możliwość ładnej zmiany między strefami czasowymi jest fantastyczna.

Porównaj to:

mysql> SELECT CONVERT_TZ('2008-04-01 12:00:00', 'UTC', 'America/Los_Angeles');
+-----------------------------------------------------------------+
| CONVERT_TZ('2008-04-01 12:00:00', 'UTC', 'America/Los_Angeles') |
+-----------------------------------------------------------------+
| 2008-04-01 05:00:00                                             |
+-----------------------------------------------------------------+

Do kontorów związanych z ta odpowiedź .

Jeśli chodzi o komentarz "łatwiejszy w użyciu", powiedziałbym, że chodzi o to, że są różne, a jeśli znasz jeden, to będzie narzut w nauce drugiego.

 3
Author: Cebjyre,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:26:37

@ Cebjyre. IDE czy Enterprise Manager lub Management Studio jest lepszy niż cokolwiek widziałem do tej pory dla MySQL. Mówię "łatwiejszy w użyciu", ponieważ mogę zrobić wiele rzeczy w MSSQL, gdzie MySQL nie ma odpowiedników. W MySQL nie mam pojęcia jak dostroić zapytania po prostu patrząc na plan zapytań lub patrząc na statystyki. Kreator strojenia indeksów w MSSQL zajmuje większość pracy z odgadnięciem, których indeksów brakuje lub które są zagubione.

Jedną wadą MySQL jest brak maksymalnego rozmiaru do bazy danych. Baza danych powiększyłaby się, dopóki nie zapełni dysku. Wyobraź sobie, że ten dysk udostępnia bazy danych innym użytkownikom i nagle wszystkie ich zapytania zawodzą, ponieważ ich bazy danych nie mogą rosnąć. Zgłaszałem ten problem do MySQL już dawno temu. Chyba jeszcze nie Naprawiono.

 2
Author: Abdu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-09 23:36:18

Spędzając trochę czasu pracując z MySQL od MSSQL do składni MySQL POV, znajdowałem się ograniczony w tym, co mogłem zrobić.

Istnieją limity bizzare dotyczące aktualizacji tabeli podczas odświeżania tej samej tabeli podczas aktualizacji.

DODATKOWO aktualizacja z nie działa i ostatnio sprawdzałem, że nie obsługują Oracle MERGE w składni. To był dla mnie show stopper i przestałem myśleć, że będę się gdziekolwiek z MySQL po tym.

 1
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-23 20:09:37