2017-01-19 13 views
0

私は毎日増加する500万行(660メガバイト)のテーブルbehaviourを持っています。このテーブルには、いくつかの行動データを保持し、このテーブルの列の2は、以下のとおりです。このMySQLテーブル構造はパフォーマンスとスケーラビリティに役立ちますか?

page_title ------- url 
page 1 ---- page1.html 
page 1 ---- page1.html 
page 1 ---- page1.html 
page 1 ---- page1.html 
page 2 ---- page2.html 
page 2 ---- page2.html 
page 1 ---- page1.html 
page 3 ---- page3.html 
page 3 ---- page3.html 
page 3 ---- page3.html 

私はSELECTクエリの多くを実行するので、私はインデックスとしてurlを持っています。 page_title(およびurl)の個別のカウントが2700

page_titleは、文字の多いTEXT、およびディスク・スペースの主な理由です。

あなたは私が別のテーブルを作成することをお勧めしますか、のが behaviourで見つかった2列の明確な結果になります all_pagesを言わせて、 behaviourから page_title列を削除し、2つのテーブル間 joinを作ることによって page_titleを取得するには?

パフォーマンスと将来のスケーラビリティに役立つでしょうか?

答えて

0

2つのテーブルをリンクするために本当に必要なのは、レコードをレコード所有者(別のテーブルの関連レコード)にリンクする関連レコードフィールドになりますが、これが何かを助けることを知らない。あなたは最終的に何を達成しようとしていますか?

0

何このデザインについて:

pages.id page_title url 
-------- ---------- ---------- 
1  page 1 ... page1.html 
2  page 2 ... page2.html 
3  page 3 ... page3.html 

stats.id page_id created    ip   ... 
-------- ------- ------------------- ---------- --- 
1  1  2017-01-01 00:00:00 1234567890 ... 
2  1  ...     ...  ... 
関連する問題