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

mysql:9387

From: "久松大輔" <"久松大輔" <CQN04630@xxxxxxxxxx>>
Date: Wed, 19 May 2004 15:52:43 +0900
Subject: [mysql 09387] 巨大テーブルの高速操作

久松と申します。
いつも大変参考にさせてもらっています。

あるシステムのトレンドデータを管理するために、MySQL(Windows)を利用しているのです
が、SELECT 実行中の INSERT が実行されないので困っています。

トレンドデータは、日時と実数のカラムが約300あるテーブルで、1秒間隔でデータを
保存しています。一ヶ月分のデータを保持しているので、約7GBのテーブルです。件数
は…約270万件になります。古いデータは毎日、DELETE されます。
このデータを表示するために、SELECT を実行するのですが、この時指定した抽出期間に
よって、かなり長いSQL実行時間になり、その間、別プロセスで INSERT しているはず
のデータが見当たりません。(グラフ表示しているので一目瞭然)

SELECT 実行中にそのテーブルがロックされ、 INSERTが拒否されているように思えるので
すが、これを回避する方法はないでしょうか?

一応、現在発行しているSQLを書いておきます。

SELECT SQL_SMALL_RESULT DISTINCT PTIME, XXX, XXX, XXX, XXX
 FROM TRNDLOG
 WHERE (PTIME > XXXX) AND (PTIME <= XXXX)
 GROUP BY XXXXX
 ORDER BY PTIME LIMIT XXX;

PTIMEは日時で、これを MINUTE とか SECOND とかを使って GROUP BY の条件にしていま
す。
取得するデータは PTIME を含めて300点中の8点です。
ちなみに、Delphi から ODBC 経由でのアクセスです。

よろしくお願いします。




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

->    9387 2004-05-19 15:52 ["久松大輔" <CQN04630] 巨大テーブルの高速操作                  
      9390 2004-05-19 22:45 ┗[SUGAWARA Hajime <sug]                                       
      9392 2004-05-20 09:02  ┗["久松大輔" <CQN04630]                                     
      9395 2004-05-20 11:30   ┣[SUGAWARA Hajime <sug]                                   
      9397 2004-05-20 11:56   ┃┗[SUGAWARA Hajime <sug]                                 
      9398 2004-05-20 12:48   ┃ ┗["久松大輔" <CQN04630]                               
      9396 2004-05-20 11:46   ┗[SUGAWARA Hajime <sug]