SQL Server používám mnoho let na velkých i malých projektech C#, ale poslední rok používám většinou MySQL na různých projektech C# (ale souvisejících s open source a spouštěním), které již MySQL používaly.
Chybí mi SQL Server! Podle mých zkušeností je SQL Server v mnoha ohledech lepší:
- Optimalizátor dotazů v SQL Server je chytřejší, což znamená, že často můžete vytvářet dotazy a ty vytvoří optimální plány dotazů. S MySQL trávím více času ručním laděním i relativně jednoduchých dotazů, abych vytvořil dobré plány dotazů.
- Základní databázový stroj v SQL Server může dělat širší škálu věcí pro zvýšení výkonu. například všechna spojení v MySQL jsou spojení Nested Loop, zatímco SQL Server může provádět spojení Hash nebo Merge Joins, což může někdy zvýšit výkon dotazů 10x+. SQL Server může také paralelizovat dotazy, což může zejména u velkých zátěží datových skladů výrazně zvýšit výkon.
- nástroje GUI jsou míle napřed. Optimalizátor dotazů grafického plánu SQL Serveru dělá optimalizaci dotazů hračkou – nikdy se nebudete chtít vrátit k EXPLAIN EXTENDED. Nástroje pro grafické monitorování SQL Server 2008 jsou mnohem snazší než prohrabávat se protokolem pomalých dotazů, abyste zjistili, co je špatně. A tak dále.
- Jak jste zmínil, příběh o integraci .NET (C#, Linq, Entity Framework atd.) v SQL Server je lepší. Používám C#, Entity Framework a LINQ také s MySQL, takže to není věc buď-nebo, i když výkon bude pravděpodobně lepší s SQL Serverem v prostředí .NET, protože týmy spolupracují na zvýšení výkonu a lepší integraci. .
- Podpora jazyka SQL serveru SQL Server je bohatší než podpora MySQL, včetně některých velmi skvělých funkcí (zejména v SQL 2008), jako je
ROW_NUMBER()
,GROUPING_SETS
,OPTIMIZE FOR
, počítané sloupce atd. - Zálohování je mnohonásobně rychlejší, zvláště v SQL 2008 s komprimovanými zálohami
- Nad budoucností SQL Serveru nevisí žádný cloud akvizice Oracle.
- SQL Server (zejména drahé edice) přichází s dalšími vychytávkami, jako je datový sklad OLAP (SSAS), řešení pro vytváření sestav (SSRS), nástroj ETL (SSIS), plánovač (SQL Agent) atd. získat podobné nástroje s otevřeným zdrojovým kódem zdarma (např. Pentaho , BIRT , atd.), ale integrace bývá lepší se serverem SQL.
To znamená, že existují významné nevýhody, které pro vás mohou, ale nemusí být překážkou:
- jste zaseknutí v používání serverů Windows se všemi výhodami a nevýhodami, které to přináší
- SQL Server, zejména edice vyšší třídy, jsou drahé ! Pro malé DB (myslím, že <4 GB) je SQL Server Express zdarma a je téměř stejně plnohodnotný jako běžný SQL Server – pokud víte, že vaše data budou malá a víte, že váš šéf je laciný , Express je způsob, jak jít. Je tu také nová edice SQL Server 2008 Web Edition, která by pro webové aplikace připojené k internetu měla teoreticky nabízet levný hosting, protože náklady na hostitele jsou pouze 15 $ měsíčně na procesor.
- Nejde o open source. Některé společnosti a vývojové týmy jsou do toho velmi zapálené, a to z dobrých důvodů (ladění, náklady, filozofie atd.)!
- související s výše uvedeným:pokud chcete opravit chybu v MySQL a máte na to dovednosti, můžete ji opravit sami. S SQL Serverem jsou bolestivé chyby ve zpracování dotazů, optimalizace atd., které přetrvávají roky – na některých z nich jsem strávil absurdní množství času.
- pro velmi jednoduché, pouze pro čtení (nebo netransakční) pracovní zátěže (např. přístup k mezipaměti založené na databázi z webové aplikace), kde vám projde používání MyISAM místo InnoDB, jsem slyšel, že MySQL může být výrazně rychlejší .
Upozornění:Slyšel jsem, že MySQL 6.0 má řešit mnohé z výše uvedených mezer a rozdílů, ale přiznal jsem, že jsem si neudržel krok s tím, jak věc Oracle atd. ovlivní plán a/nebo sadu funkcí.
re:vaše poznámka "C# je vestavěná":ano, můžete vyvíjet uložené procedury, funkce, agregáty atd. pomocí jazyků .NET, ale IMHO ve většině scénářů je to větší problém, než stojí za to, včetně toho, že nasazení je těžší a DBA jsou méně spokojeni s kódem .NET na svých serverech. Skutečnou výhodou kombinace C# + .NET + Visual Studio + SQL Server je IMHO to, že byly navrženy paralelně během posledních 10 let, aby všechny dobře spolupracovaly, takže získáte snadné použití a synergii, kterou nemusí používat MySQL. To znamená, jak jsem poznamenal výše, nejedná se o nic, co by narušilo dohodu nebo dohodu vytvořilo... je to jen plynulejší pomocí SQL Serveru se zbytkem Microsoft stacku.
Stručně řečeno, dovolte mi ujasnit, že pro mnoho pracovních zátěží DB je MySQL dostačující – funguje, je stabilní, je rychlý, má přiměřeně dobré nástroje atd. A je cenově dostupný! :-) Nikdy bych neodmítl projekt jen proto, že používají MySQL. Ale to srovnání je jako jízda Honda vs. BMW... Honda vás dostane tam, kam chcete, ale pokud to vaše peněženka unese, s Bimmerem si jízdu užijete mnohem víc. :-)