147

私はASP.NET開発者でありMicrosoft SQL Server、データベースのすべてのニーズ(仕事と個人プロジェクトの両方)に使用しています。

I am considering trying out the LAMP stack for some of my personal projects.

What are some of the main differences between MySQL and SQL Server? Is using stored procedures a common practice in MySQL?

Any advice or resources you'd recommend to help me with the switch?

To those who have experience with both, are there any missing features from MySQL?

4

12 に答える 12

141

注意しなければならないことの1つは、SQLServerとMySQLがSQL構文を実装する方法のかなり深刻な違いです。

これは、さまざまなSQL実装の優れた比較です。

たとえば、top-nセクションを見てください。MySQLの場合:

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

SQL Server(T-SQL)の場合:

SELECT TOP 3 WITH TIES *
FROM person
ORDER BY age ASC
于 2008-08-14T03:17:18.153 に答える
49

ここのコメントの多くは、実際の発言というよりは宗教的な議論のように聞こえます。私は MySQL と MSSQL の両方で何年も働いてきましたが、どちらも優れた製品です。主にあなたが取り組んでいる環境に基づいて、MySQL を選択します。ほとんどのオープン ソース プロジェクトは MySQL を使用しているため、その方向に進む場合は MySQL を選択します。.Net で何かを開発する場合、私は MSSQL を選択します。MSSQL の方がはるかに優れているからではなく、ほとんどの人が MSSQL を使用しているためです。私は現在、MySQL と C# で ASP.NET を使用するプロジェクトに取り組んでいます。それは完全にうまく機能します。

于 2010-09-01T07:41:14.790 に答える
23

MySQLがCommonTableExpressions(CTE)/"with"ステートメントをサポートしていないと誰も言及していないとは信じられません。それはかなり厄介な違いです。

于 2012-10-12T19:18:08.190 に答える
15

MySQL では、データベースの破損の問題が発生する可能性が高く、発生しても自動的に修正されません。バージョン 6.5 から MSSQL を使用してきましたが、データベースをオフラインにしてデータベースが破損したことを覚えていません。実稼働環境で MySQL を数回使用したことがありますが、コマンドラインから魔法の「破損したインデックスを修正してください」を実行するまで、データベースの破損の問題によりデータベース全体がオフラインになりました。

私の経験では、MSSQL のトランザクションおよびジャーナリング システムは、電源の再投入やハードウェアの障害を含め、データベースを破損することなく、ほぼすべてを処理し、何か問題が発生した場合は自動的に修正します。

これは私の経験であり、これが修正されたか、何か間違ったことをしていたと聞いてうれしいです.

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

http://www.google.com/search?q=site%3Abugs.mysql.com+index+破損

于 2008-08-20T16:28:51.663 に答える
7

率直に言って、MSSQL ではなく MySQL を使用する理由が 1 つも見つかりません。以前はコストが問題でしたが、SQL Server 2005 Express は無料で、月額 5.00 ドル未満で SQL Server を使用した完全なホスティングを提供する Web ホスティング会社が多数あります。

MSSQL は使いやすく、MySQL にはない多くの機能を備えています。

于 2008-09-09T04:51:26.853 に答える
7

MySQL のすべては、MSSQL よりも金属に近い形で行われているようです。ドキュメントでは、そのように扱われています。特に最適化の場合、インデックス、システム構成、およびオプティマイザーがさまざまな状況でどのように相互作用するかを理解する必要があります。

「オプティマイザー」はパーサーです。MSSQL では、多くの場合、クエリ プランは驚くべきものです (通常は適切ですが、そうでない場合もあります)。MySQL では、ほとんどの場合、要求されたとおりに、期待どおりに実行されます。つまり、あなた自身がそれが行われる可能性のあるさまざまな方法を深く理解している必要があります.

優れた TRANSACTION モデル (デフォルトの MyISAM エンジン) を中心に構築されていません。

ファイルシステムのセットアップが問題です。

すべてのデータベース構成はあなたの問題です-特にさまざまなキャッシュサイズ。

場合によっては、それをその場しのぎの美化されたイサムと考えるのが最善のように思えます。コッドとデートはここではあまり重要ではありません。彼らは恥ずかしがらずにそう言うでしょう。

于 2008-11-23T21:11:29.147 に答える
5

注意すべき重要な点の1つは、MySQL 5.0より前のバージョンには、ビュー、トリガー、およびストアドプロシージャがなかったことです。

詳細については、MySQL5.0のダウンロードページで説明しています。

于 2008-08-14T03:20:06.040 に答える
4

どちらもDBMSのProductSqlサーバーは商用アプリケーションであり、MySqlはopensoucesアプリケーションです。どちらの製品にも同様の機能が含まれていますが、エンタープライズソリューションにはSQLサーバーを使用する必要がありますが、mysqlは小規模な実装に適している場合があります。リカバリなどの機能が必要な場合は、レプリケーション、グラニュラーセキュリティおよび重要な、SQLサーバーが必要です

MySqlは、SQL Serverよりもディスク上の占有スペースが少なく、メモリとCPUの使用量も少なくなります。

于 2010-03-08T14:10:06.210 に答える
4

@アブドゥ

MySQL が MSSQL よりも優れていることがわかった主な点は、タイムゾーンのサポートです。夏時間を考慮して、タイムゾーンを適切に変更できる機能は素晴らしいものです。

これを比較してください:

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                                             |
+-----------------------------------------------------------------+

この回答に含まれるゆがみに。

「使いやすい」というコメントについては、ポイントはそれらが異なるということであり、一方を知っていれば、他方を学習する際にオーバーヘッドが生じるということです。

于 2008-09-09T05:22:28.587 に答える
3

SQL Server から MySQL へのデータベースの「移植」について、良い経験をした人はいますか?

これはかなり痛いはずです!MySQL のバージョンを 4.x から 5.x に切り替えたところ、以前のようにさまざまなステートメントが機能しなくなりました。クエリ アナライザが「改善」されたため、以前はパフォーマンスが調整されていたステートメントが期待どおりに機能しなくなりました。

500GB の MySQL データベースでの作業から学んだ教訓: これは微妙なトピックであり、些細なことではありません。

于 2008-08-14T11:24:57.133 に答える
2

@Cebjyre。Enterprise Manager であれ Management Studio であれ、IDE は、私がこれまで MySQL で見てきたどの製品よりも優れています。私が「使いやすい」と言ったのは、MySQL に対応するものがない MSSQL で多くのことを実行できるからです。MySQL では、クエリ プランや統計を確認するだけでクエリを調整する方法がわかりません。MSSQL のインデックス チューニング ウィザードは、どのインデックスが欠落しているか、間違って配置されているかについて、ほとんどの推測作業を行います。

MySQL の欠点の 1 つは、データベースの最大サイズがないことです。データベースは、ディスクがいっぱいになるまでサイズが大きくなります。このディスクが他のユーザーとデータベースを共有していて、データベースが拡張できないために突然すべてのクエリが失敗したとします。この問題はずっと前に MySQL に報告しました。まだ直っていないと思います。

于 2008-09-09T23:36:18.473 に答える
1

MSSQL から MySQL 構文 POV に至るまで、MySQL での作業に時間を費やしていましたが、自分にできることは限られていることに気づき続けていました。

更新中に同じテーブルを参照しながらテーブルを更新するには、奇妙な制限があります。

さらに、UPDATE FROM は機能せず、最後に確認したときは、Oracle MERGE INTO 構文もサポートしていません。これは私にとってショーストッパーであり、その後、MySQL でどこにでも行けるとは考えなくなりました。

于 2008-11-23T20:09:37.350 に答える