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

mysql:16324

From: ユメ吉 <ユメ吉 <yume_tana@xxxxxxxxxx>>
Date: Fri, 29 Apr 2016 23:28:50 +0900 (JST)
Subject: [mysql 16324] 処理速度が遅い

MySQLをはじめて1ヶ月の初心者です。以前、他のRDBを少しかじった程度ですが
本格的にものにしようと勉強中です。
ところが、MySQLの処理速度が遅いので困惑しており、メールをしたところです。

テーブルは日付、 keycode、数値1、数値2と簡単ですが、データ量は毎日取込んでおりで
keycodeが2000種程になるので今では200万件を超えております。
今回MySQLに移植しなおして、ためしにselect * from テーブル名(tb)de開けたところ3.2秒かかりました。
まだインデックスは付けていませんが、 keycodeだけ付けましたが2.2秒とあまり変わりません。
その時、EXPLAINを見ましたが type = ALL Key=NULL Extra = NULL
 になっていました。
今回は自己結合を使って日付、 keycodeごとに1週間分、1か月分、半年分、一年分の平均を算出していきたく
クエリーを作りました。 A.日付 >= '2016-04-29' にして直近だけで9.6秒かかりました。
ちなみに今年から(A.日付 >= '2016-01-01' )では 96分かかっていました。本当は2年分程を5〜6分以内に
できないか思っております。
この時の条件は 日付とkeycodeを単独でインデックスを作りました。
explain は tb A type = range ,key=日付 ,extra =Using index condition; Using MRR; Using temporary; Using filesort
 tb B type = ref ,key=keycode ,extra =Using where
MYSQLのVer=5.7
 モメリー=4G  OS=WIN7pro
explainは初めてで良くわかりませんが、速度アップのためのご指導頂けないでしょうか。
***************************************************************
select
 A.hizuke as "HIZUKE" ,
 A.keycode as "KEYCODE",
 avg(case when B.日付 >= date_add(A.日付,interval -7 day)  then B.数値1 else null end ) as "7d_1_HEIKIN" ,
 avg(case when B.日付 >= date_add(A.日付,interval -7 day)  then B.数値2 else null end ) as "7d_2_HEIKIN" ,
 avg(case when B.日付 >= date_add(A.日付,interval -31 day) then B.数値1 else null end ) as
 "31d_1_HEIKIN" ,
 avg(case when B.日付 >= date_add(A.日付,interval -31 day) then B.数値2 else null end ) as "31d_2_HEIKIN" ,
 avg(case when B.日付 >= date_add(A.日付,interval -150 day) then B.数値1 else null end ) as "180d_1_HEIKIN" ,
 avg(case when B.日付 >= date_add(A.日付,interval -150 day) then B.数値2 else null end ) as "180d_2_HEIKIN" ,
 avg(case when B.日付 >= date_add(A.日付,interval -365 day) then B.数値1 else null end ) as "365d_1_HEIKIN" ,
 avg(case when B.日付 >= date_add(A.日付,interval -365 day) then B.数値2 else null end ) as "365d_2_HEIKIN" ,
 from tb A , tb B

where A.keycode = B.keycode
and A.日付 >= '2016-04-29' 
and B.日付 between date_add(A.日付,interval -365 day) and A.日付
 
group by A.keycode ,A.日付
 
******************************************************************


添付ファイル

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

-> @ 16324 2016-04-29 23:28 [ユメ吉 <yume_tana@xx] 処理速度が遅い                          
     16325 2016-04-30 00:13 ┗[HIRATSUKA Sadao <sh2] Re: [mysql 16324] 処理速度が遅い      
   @ 16326 2016-04-30 10:39  ┗[Masaki Miyata <catlo] Re: [mysql 16325] Re: [mysql 16324] 処理速度が遅い
   @ 16327 2016-04-30 14:10   ┗["yoku ts." <yoku0825] Re: [mysql 16326] Re: [mysql 16325] Re: [mysql 16324] 処理速度が遅い
   @ 16328 2016-05-01 09:25    ┗[Masaki Miyata <catlo] Re: [mysql 16327] Re: [mysql 16326] Re: [mysql 16325] Re: [mysql 16324] 処理速度が遅い
   @ 16329 2016-05-01 11:50     ┗[ユメ吉 <yume_tana@xx] Re: [mysql 16328] Re: [mysql 16327] Re: [mysql 16326] Re: [mysql 16325] Re: [mysql 16324] 処理速度が遅い