3

サイトを拡張する最善の方法を見つけようとしていますが、mssql がどのように拡張されるかについて質問があります。

現在のテーブルは次のとおりです。

cache_id - int - 識別子
cache_name - nvchar 256 - event_id とともにルックアップに使用
cache_event_id - int - 基本的にグループ化の方法
cache_creation_date - datetime
cache_data - varbinary(MAX) - データサイズは 2k から 5k です

保存されたデータはバイト配列であり、基本的には私のサイトのページの (圧縮された) キャッシュされたインスタンスです。

私が見るさまざまな保存方法は次のとおりです
。1)1つの大きなテーブルには、数千万のレコードが含まれ、サイズが簡単に数ギガバイトになります。
2) 上記のデータを含む複数のテーブル。つまり、各テーブルは 20 万から 100 万のレコードになります。

このテーブルのデータは Web ページを表示するために使用されるため、レコードを取得するのに 200 ミリ秒を超えるものは、私の目には悪いものです (1 ~ 2 秒のページ読み込みで問題ないと考える人もいますが、それは遅いのでやりたいと思います)。それを低く保つために最善を尽くします)。

要するに、何が SQL サーバーの速度を低下させているのでしょうか?
それはテーブルのサイズ (ディスク容量)
ですか? 行の数
ですか? 複数のデータベース サーバーを使用する費用対効果がなくなるのはどの時点ですか?


これらのことを予測することが不可能に近い場合は、それを返信として受け入れます. 私はDBAではなく、基本的にDBを設計しようとしているので、後で大量のデータが含まれているときに再設計する必要はありません。

4

3 に答える 3

3
つまり、SQLサーバーの速度を低下させるのは何でしょうか。
テーブルのサイズ(ディスク容量)ですか
行数です
複数を使用することはどの時点で費用効果が高くなるのをやめますか
       データベースサーバー?

これはすべて「経験則」の見方です。DBの負荷(したがって、かなりの程度のパフォーマンス)は、主に2つの問題のデータボリュームとトランザクション負荷の要因であり、IMHOは一般的に2番目の問題がより適切です。

データボリュームに関しては、数ギガバイトのデータを保持し、正規化、インデックス作成、パーティショニング、高速IOシステム、適切なバッファキャッシュサイズなどを使用して許容可能なアクセス時間を取得できます。これらの多く、たとえば正規化は、 DB設計時間、システム調整中のその他の時間、たとえば、追加/少ないインデックス、バッファキャッシュサイズ。

トランザクションの負荷は、主にコード設計とユーザーの総数の要因です。コードの設計には、トランザクションサイズを適切に設定するなどの要素が含まれます(一般的な目標は小さくて高速ですが、ほとんどの場合と同様に、トランザクションが小さすぎて整合性を維持できない、または小さすぎて負荷が増える可能性があります) 。

スケールアップするときは、最初にスケールアップ(より大きく、より高速なサーバー)してから、スケールアウト(複数のサーバー)することをお勧めします。複数サーバーインスタンスの管理上の問題は重大であり、OS、ネットワーク、およびDBAのスキルとプロセスが一致するサイトを検討するだけの価値があることをお勧めします。

于 2009-04-20T00:44:35.883 に答える
1

唯一可能な答えは、それをセットアップし、自分だけが知っていることを学習する長い反復プロセスに備えることです。なぜなら、自分のドメインに住むのは自分だけだからです。ここに表示される技術的なアドバイスは、実際の経験を共有するまでは、素朴で情報が不十分です。

推測をすべてテストし、結果を比較して、何が機能するかを確認します。そして、よりテスト可能なアイデアを探し続けてください。(そして、結果的に役に立たない変更を取り消すことを恐れないでください。シンプルさを維持する希望を持つことは、基本的な要件です。)

そして、データベース設計が進化するという事実を受け入れてください。あなたのコメントが示唆するほど恐ろしいものではありません。データベースを変更する方が、ソフトウェアを変更するよりもはるかに簡単です。

于 2009-04-19T23:31:47.257 に答える
1

正規化して索引付けします。

テーブルが何をモデル化しようとしているのか、またはそれをどのように使用しようとしているのかを使用に伝えていないため、方法はわかりません。

100 万行も珍しくありません。繰り返しになりますが、コンテキストがなければ多くを語ることはできません。提供できるのはあなただけですが、提供しないでください。

于 2009-04-19T23:16:53.097 に答える