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

mysql:7658

From: とみたまさひろ <とみたまさひろ <tommy@xxxxxxxxxx>>
Date: Wed, 7 May 2003 08:09:35 +0900
Subject: [mysql 07658] Re: C 言語の API によるクエリの中断について

とみたです。

On Tue, 6 May 2003 18:29:12 +0900
"m.yamazaki" <yamazaki.ms@xxxxxxxxxx> wrote:

> 例えですが、LOAD DATA文にて
> 1000万件入っているファイルをテーブルに挿入するのに
> 2分かかるとします。
> それをLOAD DATA文投入1分後に強制的に中断するには
> どのようにすればよいのでしょうか?
> 下記の方法は試したのですが、だめでした。

> 試した内容
> ・タイマを張って1分後にmysql_closeする
>   →mysql_query関数からは戻ってきますが、
>     投入したSQL文が中断せずデータが挿入されてしまいます。

SIGALRM のシグナルハンドラで mysql_close() を呼んだってことでしょうか。
やっていいのかな…(^^;

> ・mysql_thread_idにて接続スレッド取得後、タイマを張って1分後に
>   mysql_kill。
>   →mysql_query関数から戻ってこないため、mysql_killが
>     LOAD DATA文終了後にしか投入されない。

プログラムをマルチスレッド化して、mysql_query() とは別のコネクションを
張って、そっちで mysql_kill() する方法はどうでしょう?

そもそも LOAD DATA 文の実行中に、途中で止められるのかどうかという問題
もあるような気が… (^^;

-- 
とみたまさひろ <tommy@xxxxxxxxxx>
日本MySQLユーザ会 http://www.mysql.gr.jp

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

      7650 2003-05-06 18:29 ["m.yamazaki" <yamaza] C 言語の API によるクエリの中断について 
->    7658 2003-05-07 08:09 ┗[とみたまさひろ <tomm]                                       
      7661 2003-05-07 10:12  ┗["m.yamazaki" <yamaza]