SQL Serverに関する基本的なクエリ

  1. Why use rowguid and what are the benefits?

  2. Suppose a company has thousands of customers, is it a good approach to divide them on the basis of their gender for the performance and fast query if no then why?

  3. How do large companies like Facebook handle their primary key for their comments, users and for other things for example:

    Suppose there are five users with primary key 1,2,3,4,5...

    What if user 3 is deleted from there, now it's 1,2,4,5 will be left, which is kind of gap between continuous chain. How do they deal with it?

1
#2の場合:あなたは男性、女性、会社の3つの性別があり、それは実際には大量の行に役立たない。また、何千もの行を持つテーブル(すべてのクライアント用)は、SQL Serverにとっては何もない - 1つのテーブルで何億もの行を処理できますが問題はありません。
追加された 著者 marc_s,
あなたはタイトルに質問を書くべきではありません。タイトルを簡単にして、質問に(余分な情報とともに)身につけてください
追加された 著者 musefan,

1 答え

  1. 分かりません - 他のデータベース間で一定に保つことができるように、自動以外の値を使用することもできます(おそらく、3部目の統合などで使用することができます)。

  2. ジェンダーを知らない(または完全なリストが必要な)ときに、2つのテーブルを検索する必要があるときや、他のフィルタリング/検索を追加するときに、性別などのフィールドで分けてはいけません再度複数のテーブルを操作する必要があります。

  3. IDチェーンにギャップがある場合、何も影響しません。なぜそれが重要だと思いますか?

3
追加された
@SaqyGee:テーブルを人為的に分割するのは良い考えではありません!クエリを分析し、適切なインデックスを取得し、SQL Serverは単一のテーブルで何億もの行を処理します...
追加された 著者 marc_s,
@SaqyGee:いいえ、テーブルを分割しないでください。コメントでmarc_sが言ったように、SQL Serverはパフォーマンスの心配なしにそれを処理できます。テーブルを1000行の2つのロットに分割すると、おそらく1つのテーブルに10000行のパフォーマンスヒットが表示されます(これ以上ない場合)
追加された 著者 musefan,
@SaqyGee: "intは8つの数字まで保存できます"とはどういう意味ですか?私はここにあなたのアプリケーションに深刻な間違いがあると思います
追加された 著者 musefan,
@サクジー:さて、あなたが今何を意味しているのか理解しています。私はFacebookのメッセージのURLを見れば、典型的なint値ではないことがわかります。私の推測では、IDの文字列を使用しています。これはまた、多くのデータベースサーバ間の投稿のマッチングに役立つかもしれませんが、私は心配しません。あなたがFacebookと同じくらい大きくなると、他の人に支払いをして問題を解決することができます;それが最初にリリースされたときのように、基本から始めて、必要に応じて構築します
追加された 著者 musefan,
私はそれが動作すると思いますが、このリンクいくつか興味深い考えがあります、あなたが限界にぶつかったら再播きに関するもの
追加された 著者 musefan,
答えは2番目の質問私はちょうどより厳密にすることを想定して例を考えてみましょうSQL Serverのstackoverflowのカテゴリと人々はこれらの技術に質問をするので、これらの尊重ハイテクの3番目の質問では、私はその重要な問題を考慮して、intが8,3の数字を1,2,3,4,5人のユーザがデータベース3,4よりも削除されているところに保存することができます。より多くのユーザ登録PKインクリメントの1,2,6,7,8および9がオーバーフローを引き起こすが、我々はまだ浪費されたインデックス3,4,5
追加された 著者 Saqy Gee,
いいえ、兄は私を間違えないでください私は整数が大量の値を実際に保存することができます知っている私は自分のウェブのためのデータベースを構築していると私は8つの数字を保存することができます...それは何百万人もの人々が毎日コメントを投稿し、投稿されたコメントから1,000人も削除されているようです...そしてfacebookも古いコメントを削除するので、主キー間のギャップを管理しなければPKは増分し続けますある日それはオーバーフローするでしょう...そして、私たちは、彼らが何らかのテクニックを持っていることは起こらないと知っています--->
追加された 著者 Saqy Gee,
--->この問題を処理するために私の質問は、彼らがどのようにこのような問題を処理するかだったcauz整数dosntは無制限のインクリメントを解決する必要があります... thatsそのソリューション私はデータベースマスターthatsなぜ私はあなたprofs ..この他の2つの質問は、私にはっきりしています。それのためには、私は十分に私の質問をクリアしたことを望みます...
追加された 著者 Saqy Gee,
私はちょうど私が論理的にビットのデータ型を使用して削除列を作ることによって行を削除したい共有したいと思っているhahaha私はウールスタイルの "Facebookのように大きなと問題を解決するためにお金を支払う:)"だから、ユーザーがコメントを削除するたびに、私は単にビットを1に設定し、他のユーザーがコメントを書くと、これらの行を1つずつ更新するだけです。このaprochから値が削除される= 1 ..soはPKに何のギャップもありませんあなたは私がそれを助けるjiggosですトリガーが働くと思うこれについて言う::) waddayaはバディと思う:)
追加された 著者 Saqy Gee,
それは怖いポストだったが、私は基本的な概念のオーバーフローの理解に多くの助けを得たすべての悪夢の後に私はFacebookのようなデータを処理する方法を見つけることを試みるだろうPKの私はprof.s方法を見つけるかもしれない私は見つけます...
追加された 著者 Saqy Gee,
ええ、私は彼らがプロファイル管理のための単純なintを使用していることを知っていた、またはそれは確かにオーバーフローすることができない大きなintになる可能性がありますpiは、そのプロファイルのIDを整数1,2,3を増やすことはできません4マークzakberger fbの所有者でした。 ..
追加された 著者 Saqy Gee,