2016-05-30 11 views
-1

私はどのようにリンク追跡ウェブサイトがすべてのデータを保存するのか疑問に思っています!わかりました、私は私のデータベースに私のデータベースはこの場合に破損します

---------------- 
| ID | Pages | 
---------------- 
| 1 | page1 | 
---------------- 
| 2 | page2 | 
---------------- 

1000ページをしたとしましょうと私はdata

----------------------------------------------------- 
| PageID |  IP   | browser | system | 
----------------------------------------------------- 
| 1 | 000.000.000.00 | firefox | win7 | 
----------------------------------------------------- 
| 2 | 000.000.000.01 | IE  | android | 
----------------------------------------------------- 
| 2 | 000.000.000.02 | Chrome | kardishan | 
----------------------------------------------------- 

のようなデータベーステーブルを追加することを決めたように、各リンクのために各訪問者の IPbrowser nameoperation systemを記録して喜びました

しかし、もし私が各ページで10,000人の訪問者を得たらどうなるでしょうか?

各ページに約10,000人の訪問者が訪れると思いますので、データベースが壊れて新たな30,000行が追加されると思います!また、この単純なクエリのためにandroidシステムが応答しないかもしれないという訪問者の数を問い合わせたいと思った場合は、

は1ページあたり約100万人の訪問者が3百万行を意味すると考えています!

ので、誰もが私はあなたがcountという名前の1以上の列を追加することができますあなたの

+5

DBは何百万ものレコードに問題ありません –

+2

それは何もありません、すべてのDBが簡単に番号を処理することができます。クエリの追加によって、クエリの追加が間違っていない可能性があります。 – Daan

+0

@juergendご返信ありがとうございますが、私はクエリの遅延時間について心配です!私は前と後に2百万のデータレコードを試しています私のウェブサイトが応答を停止し、サポートがホスティングしていると私はあまりにも多くのリソースを使用していると言いました –

答えて

0

特定の列の組み合わせがテーブル内で1回だけ発生することをDBMSに伝える必要があります。もしあなたがそれをしていれば、MySQLはインデックスを自動的に定義します。つまり、PRIMARY KEYとUNIQUE NOT NULL制約を使用します。

0

に感謝し、私のデータベースの国境を越える

せずにこれを行うために従うことができ、別のルートがある場合は私に説明のより良いアイデアを持っていません。 次に、1日のユニークビジターのみを保存する必要があります。一意でないすべての訪問は、count列をインクリメントする必要があります。

関連する問題