Facebookの規模のWebサイトを作成することを計画しているとしましょう(もし私がWebサイトの名前を引用するなら、なぜFacebookではないのでしょうか!)。このようなアプリケーションのデータベースとしてSQL Serverを使用することをお勧めしますか?
私がこの質問をしているのは、私の多くの同僚が、SQLサーバーではそのようなアプリケーションを使用するべきではないと言っているからです。代わりにOracleまたはMySQLを好みます。
Facebookの規模のWebサイトを作成することを計画しているとしましょう(もし私がWebサイトの名前を引用するなら、なぜFacebookではないのでしょうか!)。このようなアプリケーションのデータベースとしてSQL Serverを使用することをお勧めしますか?
私がこの質問をしているのは、私の多くの同僚が、SQLサーバーではそのようなアプリケーションを使用するべきではないと言っているからです。代わりにOracleまたはMySQLを好みます。
回答:
はい。SQLServerは、Webを含む大量の使用向けに設計されています。これは、CPUインスタンスと結合されたメモリインスタンスやストレージとしてのSANなど、さまざまな構成に組み込むことができます。
最寄りのマイクロソフトインテグレーターまたはエバンジェリストに助言を求めてください。
Web上のSQL Serverのスケーリング機能に関する多くのリソースを見つけることができます。まず、SQL Serverチームからの件に関するすばらしいブログ投稿があります。http://blogs.msdn.com/b/sqlcat/archive/ 2008/06/12 / sql-server-scale-out.aspx
AzureがクラウドでSQL Serverを提供する方法を必ず確認してください。
本物の大規模に拡張可能な機能が必要な場合は、従来のデータベースエンジンを使用しないでください。
従来のSQLデータベースは規模がかなりよく(あなたは、MySQL、SQL ServerまたはOrcaleを使用して、大きなサイトの例をたくさん見つけることができます)が、ある時点で、あなたがやるだろうスケーラビリティの制限をヒット。これが発生する正確なタイミングは、需要のレベル、アプリケーション要件の複雑さ、高価なサーバーにどれだけ費やすことができるか、データベースの使用を最適化できるかどうかによって異なります。多くのサイトがこの制限に達することは決してありませんが、これを行うと、それはかなり苦痛であり、問題を修正するためのエンジニアリング上の大きな課題に直面することになります。
この点を超えると、完全に分散されたNoSQLデータベース(たとえば、実際にはFacebookでビッグデータの課題のいくつかを解決するために開発されたCassandraなど)が必要になります。NoSQLデータベースは、効果的な無制限の水平方向のスケーラビリティを可能にするために、従来のSQLデータベース機能の一部(通常はトランザクション、ロック、および結果整合性)を明示的に犠牲にしています。
全体的に、私のアドバイスは、大規模なスケーラビリティが本当に必要かどうかを判断し、それに応じてテクノロジパスを選択することです。
ツールとしてSQL Serverを使用できる場合がありますが、Facebookのようなサイトはデータベースだけの上に構築されていないことに注意してください。彼らはさまざまなテクノロジーを使用してタスクを実行し、Yahooのビデオをチェックしてfacebookが単独でログを管理する方法を見つけます。DBは巨大なスケーラブルなアーキテクチャの一部にすぎないことに気付くでしょう。1秒あたり約10000行の更新で、SQL ServerとOracle DBの両方が、適切な構成マシンで数日後に非常に遅くなるのを目にしました。私の問題は、分散コンピューティングを使用できないことです。したがって、DBまたはスケーラブルなアーキテクチャが提供できるサポートシステムを確認することが重要です。
MySQLには答えられません(!)が、SQLServerとOracleのどちらを使用するかを選択した顧客をサポートした経験があります。これまでのところ、一般にそれらの間に違いはないことがわかりましたが、物事が最先端に行くとき、Oracleははるかに優れた製品です。たとえば、SQLServerが(ミラーリング環境で)実行中にこのタスクを実行するには何時間もかかると判断したため、現在、24時間年中無休のミッションクリティカルシステムを停止してレコードのロードをパージしています。WANリンクを介した大規模なデータセットのログ配布に関する問題がありましたが、完全には解決されませんでした。このようなことは、私たちがそのような問題を抱えたことのないOracleを実行している顧客をサポートすることを常に嬉しくさせます。
したがって、非常にスケーラブルなシステムを探している場合は、これらの問題が見つかる可能性が高くなります。オラクルは鈍く、難しく、煩わしいですが、実際に機能します。