[前][次][番号順一覧][スレッド一覧]

mysql:15323

From: らっちょ らっちょ <らっちょ らっちょ <zon1966@xxxxxxxxxx>>
Date: Wed, 2 Jun 2010 07:31:26 +0000
Subject: [mysql 15323] Re: フィールド数とレコード数のパフォーマンス差について



増田さん、こんにちは 

らっちょと申します。

私も駆け出しなのですが、普段

 CentOS5.3 & MySQL5.1.41 & PHP5.3.1

 Server cpu:Opteron1352 memory:8G

の環境で動かしております。

最大レコード数は約240万ですが、快適に作動しております。

 

さて、お問合せの件ですが

> 一ヶ月目で、130ぐらいレコード数が増えます。
> これを1000ヶ月とか10000ヶ月になった場合、膨大なレコード数になり、パフォーマンスが落ちないか心配な面があります。

ミヤタさんも仰っていますが、1000ヶ月で13万、10000ヶ月(約833年)で130万レコードと

あまり多くはないように思います。

パフォーマンスの心配はしなくても大丈夫だと思います。

(古いPCでスペックが低すぎると分かりませんが)

 

それより気になったのは、

・その月のaction回数を調べて今回可能か判断する場合

  table1)カラムを順に調べて空きがあればactionへ

  table2)その月の件数を調べて10未満ならactionへ

 が必要と思われますが、table2の方が楽だと思います。

 

・なんらかの集計をされますでしょうか

  月に10回未満が許されるのなら個人別action状況

  行為日が特定でなければ、日別のaction数 とか

 集計されるのならtable2でないと大変のような気がします。

 

以上少しでもお役に立てればと思い、レスいたします。

#MySQL(データベース)で、楽&幸になる人が増えることを願ってます

 

 
> --------------
> table1
> 
> key | user_id | 1day_action1 | 2day_action1 .... 10day_action1 |
> 1day_action2 | .... 10day_action2
> 
> とすべきか、
> 
> 
> table2
> 
> key | user_id | action | day
> 
> とすべきかで迷っております。
> 
> table1であれば、一度user_idなどをINSERTしてしまえば、action部分をUPDATEするだけ(NOT
> NULL制約有)なので、フィールドもそこまで増えず、ある意味見やすいです。
> ただし、アクションを2つ行えるのは3名しかいないため、残り7名にとっては無駄なフィールドがあって、
> あまり効率よくない感じがします。
> 
> table2だと、フィールドも少なく、actionの内容とその行為日だけを入れればよいので、
> 楽なのですが、INSERTが多くなり、レコード数も必然と増えます。
> 
> ただし、フィールドに無駄はありませんし、WHERE句を使えばデータは取ってこれるので、
> 1レコードとしては見にくいですが、データを素早く取ってこれることが大事なので、
> こちらのほうがよいのかなと思っています。
> 
> ---
> 
> ただし、行為の対象として、targetフィールドを設けなければならなくなったり、
> 10日間を複数回繰り返すことができるようになり、1ヶ月目(10日間)、2ヶ月目(10日間)というように
> 増えて言った場合、table2だと、
> 
> key | month | user_id | action | target | day
> となり、1monthで1user、10action(3人は20action)ですので、
> 一ヶ月目で、130ぐらいレコード数が増えます。
> 
> これを1000ヶ月とか10000ヶ月になった場合、膨大なレコード数になり、パフォーマンスが落ちないか心配な面があります。
> 
> table1だと、
> 
> 
> key | month | user_id | 1day_action1 | 2day_action1 .... 10day_action1
> | 1day_action2 | .... 10day_action2
> target
> として、アクションフィールドのデータにその行為のターゲットを入れればデータは取れるので、
> レコード数もあまり増えず、無駄なフィールドはあるものの、こちらのほうがよいのだろうかとも思ってしまいます。
> 
> 
> この場合、どちらのほうがパフォーマンスとして望ましいのでしょうか?
> データが多くなれば検証もできるのですが、現在データが少なく、比較できるほど大きなデータも持っていないため、もし何か分かりましたらご教授いただけると嬉しく思います。
> 
> 
> 
> 増田
> -- 
> mailto:masuken@xxxxxxxxxx
 		 	   		  
_________________________________________________________________
USBメモリ代わりにお使いください。無料で使える25GB。
http://skydrive.live.com/?showunauth=1&mcid=HomeliveMerchBox1

添付ファイル

[前][次][番号順一覧][スレッド一覧]

     15321 2010-06-02 10:17 [Masuda <masuken@xxxx] フィールド数とレコード数のパフォーマンス差について
     15322 2010-06-02 12:35 ┣[Miyata Masaki <catlo]                                       
     15325 2010-06-03 13:06 ┃┗[Masuda <masuken@xxxx] Re: [mysql 15322] Re: フィールド数とレコード数のパフォーマンス差について
-> @ 15323 2010-06-02 16:31 ┗[らっちょ らっちょ <z]                                       
     15324 2010-06-02 18:57  ┣[岩崎 誠司 <iwasaki_]                                     
     15327 2010-06-03 13:37  ┃┗[Masuda <masuken@xxxx] Re: [mysql 15324] Re: フィールド数とレコード数のパフォーマンス差について
     15326 2010-06-03 13:29  ┗[Masuda <masuken@xxxx] Re: [mysql 15323] Re: フィールド数とレコード数のパフォーマンス差について