MYSQLとSQL Server 2014 Expressの違いは何ですか?


答え 1:

MySQLとSQL Server 2014の両方を日常的に使用している人として、私が信じている主な違い(および各自の好き嫌い)を伝えることができます。

SQL言語の実装

SQL Serverには大きな歴史があり、各クエリには実行計画が必要であるという前提に基づいてエンジンを構築しました。SQLServerには、クエリのコストを視覚的に分析してクエリを最適化する優れたツールがあります。 MySQLにはこの種の分析ツールが欠けているか、ユーザーが費用を支払う必要があります。

MySQLでは、これを行うことができます:a、b、c + y、count(d)をztableグループからのカウンターとして1,2ずつ選択します3. SQL Serverでは、これを行う必要があります:a、b、c + y、count( d)ztableグループからのカウンターとして、a、b、c + y。

MySQLでは、LIMIT句を使用してクエリを制限します。 例えば:

SELECT * FROM SomeTable Limit 50、10。 これにより、クエリの結果から、50〜59行のみが得られます。これは、多くのことに役立ちます。

SQL Serverは、このSELECT * FROM dbo.SomeTable OFFSET 50 ROWS FETCH NEXT 10 ROWS ONLYを使用します。

同じことを実行できますが、SQL Serverでさらに多くのことを書く必要があります。

MySQLでは、if(some_condition = true、useThisValueIfTrue、useThisValueIfFalse)を使用できます。また、CASEを使用できます:CASE WHEN a = true THEN 1 ELSE 0 END as as SomeValue。 SQL Serverには、CASEのみがあります。 これにより、各クエリでさらに多くのことを記述できます。

一方、SQL Serverには複雑なクエリに関してより多くのオプションがあります。CROSSTABクエリを作成するためのPIVOT、CROSSJOIN、および高度なクエリのためにSQL Serverを本当にクールにする他の多くの機能があります。

データを挿入するとき、MySQLでは次のことができます。

mytableセットにa = value、b = anothervalueを挿入します。

SQL Serverでは、クラシックのみを使用できます。

mytable(a、b)の値(value、anothervalue)に挿入します

または

mytable値(value、anothervalue)に挿入します

現在、2、3、4列では、これはおそらく最も面倒ではありませんが、40、50列をプッシュする場合、特に複雑な計算値が含まれる場合は、ミスをせずに挿入するのは苦痛です。

私にとって、MySQLは単純なクエリ(2〜3個のテーブルクエリでも)でSQL Serverを簡単に破ります。 しかし、長く複雑なクエリでは、SQL Serverが重要です。

バックアップ

繰り返しますが、SQL Serverは複雑な状況を考慮して構築されており、完全バックアップを作成する方法は少なくとも3つあり、複雑な増分バックアップ、バイナリ、ファイルシステム、およびスクリプトがあります。 おそらくバイナリに固執する必要がありますが、SQL SERVERを復元する際には十分に注意する必要があるセキュリティ上の問題が多数あります。 SQL Serverでのバックアップの復元は、未経験ではありません。 何をしているのかを知る必要があります。そうしないと、データベースが台無しになる可能性があります。 また、データベースが非常に小さい場合を除き、SQL SERVERでSQL File Restoreを使用することを決してお勧めしません。永遠に時間がかかり、時々失敗し、45分から1時間後にダンプが失敗することがあります。 。

一方、MySQLはSQLをファイルにダンプし、そのSQLを復元するだけです。 これは機能し、シンプルであり、バックアップを使用するパワーユーザー向けのあらゆるメディアを簡単にトレーニングでき、手間をかけずに簡単に実行できます。 ただし、セキュリティを自分で維持および保証する必要もあります。これは、環境によっては面倒な場合があります。

ディスクの使用状況

ストレージが安価であるため、ディスクの使用は重要ではないと男が言ったときに、Quoraのどこかを読みました。 まあそれはそうかもしれませんが、それでもそれを無駄にするのはちょっと愚かです。

MySQLは非常にコンパクトです。2003年にさかのぼる小規模企業にインストールを数回行っており、データが10 GBに達したことがなく、数百万行のテーブルがありますが、データは不均衡に成長していません。

SQL Serverには、わずか2か月で2 GBを消費する別のインストールがありました! SQL Serverを保守する必要があります。ログを消去する必要があります。SQLServerでデータベースの保守を行えるようにするために頻繁にバイナリをバックアップする必要があります。ユーザーの数、インストールの複雑さ、処理されているデータの種類に応じて、DBAは一部の場所で必須です。 MySQLは、中級のトレーニングを受けたパワーユーザーで保守でき、問題ありません。

また、SQLプロファイラーとSQLエージェントがなければ、SQL Serverで実行できないこともいくつかあります。 MySQLは、1つ以上のサービスなしで、すべてを単独で実行できます。

繰り返しますが、企業の規模と複雑さによっては、SQL Serverが最適な方法かもしれません。 しかし、これらの複雑さが必要ない場合、MySQLは優れた候補です。

保存された手順、関数、UDFS

これはRDBMSの大胆な土地です。MySQLのSPでUdemyコースを作成しています。 しかし、SP、トリガー、関数、およびすべてのMySQLが大好きなのと同じように、SQL SERVERに渡す必要があります。

これを言う前に、SQL ServerのSPは高速で、複雑で、C#やVisual Basicなどの他の言語でコンパイルできるようにするための多くのユーティリティがあります。 MySQLの一時テーブルよりも速く簡単に動作できるTABLE変数を作成することもできます。 彼らにはたくさんのことがあります。

MySQLにもユーザー定義関数を含めることができますが、Cに習熟する必要があります。その場合、心配する必要はありません。 私たちの多くはそうではありません。

もちろんもっとありますが、私はあなたがアイデアを得ると思います。

幸運を祈る!


答え 2:

大企業の選択肢から拡張されたSQL Server Expressでは、作業でSQLを利用する場合、いくつかの代替手段にアクセスできます。 SQL照会の確認は、Prefixで選別できる数多くの項目の1つにすぎません。

SQL Server Expressは、さまざまな興味深い点を提供します。 最初の、そして一見最も重要なものは、SQL Serverとの完全な汎用性と調整です。

詳細:SQL Server Express | SQL Server Expressバージョン