質問

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

試してみることを検討しています ランプ 私の個人的なプロジェクトのいくつかのためにスタックします。

の主な違いは何ですか? MySQL そして SQL Server?使っています ストアドプロシージャ での一般的な習慣 MySQL?

切り替えに役立つアドバイスやリソースをお勧めしますか?

両方の経験がある方へ、不足している機能はありますか? MySQL?

役に立ちましたか?

解決

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

ここに素敵なものがあります さまざまな SQL 実装の比較.

たとえば、上位 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

他のヒント

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

MySQL が Common Table Expressions (CTE) / "with" ステートメントをサポートしていないことを誰も言及しなかったことが信じられません。なかなか悩ましい違いですね。

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

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

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

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

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

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

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

すべてのデータベース構成、特にさまざまなキャッシュ サイズが問題になります。

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

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

詳細については、「 MySQL 5.0 ダウンロードページ.

@アブドゥ

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

に伴う歪みに この答え.

「使いやすい」というコメントに関しては、重要なのは両者が異なっており、一方を知っているともう一方を学ぶのにオーバーヘッドが生じるということだと思います。

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

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

SQL ServerからMySQLへのデータベースの「ポート」の良い経験がある人はいますか?

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

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

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

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

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

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

さらに、UPDATE FROM は機能せず、最後に確認したところ、Oracle MERGE INTO 構文もサポートされていませんでした。これは私にとって大きな問題であり、その後、MySQL を使って何かを達成しようと考えるのをやめました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top