PERLでMySQLにデータを挿入する実験。
実験スクリプト
INSERT を100万回繰り返す。
for(1..1000000){
$sql = <<"EOM";
INSERT INTO `table_name`
(`col1`,`col2`,`col3`,`col4`) VALUES ('10','11','12','13');
EOM
$sth = $dbh->do($sql)|| die $dbh->errstr;
}
結果:途中でサーバエラー
Server error!
The server encountered an internal error and was unable to complete your request.
Error message:
Premature end of script headers: xxxx.cgi
If you think this is a server error, please contact the webmaster.
Error 500
httpd/error_logの出力:
[Fri Feb 06 20:04:00 2009] [error] [client xx.xxx.xxx.xxx] Premature end of script headers: sql.cgi
挿入されたデータ:約83万行
httpd.confの設定が、TimeOut 60によるエラーか?
More from my site
DBI & MySQLでカウントする $COUNT = $dbh->selectrow_array("SELECT COUNT(*) FROM `テーブル名` WHERE `カラム` = '条件'");
perl SpeedyCGIでデータベースの接続を永続化する perlスクリプトをSpeedyCGIスクリプトとして動作させる場合、グローバル変数の値は保持され続ける。なので、一度接続したデータベースハンドルを使い回すことでデータベースへの接続コストを削減できる。
テスト用スクリプト
#!/usr/bin/speedy
use strict;
use warnings;
use DBI;
#DB用設定
my […]
自分が追加した最新のauto_increment番号を取得する $sql = "INSERT INTO `db_01` ( data1, data2 ) VALUES ( $data1, $data2 )";
$sth = $dbh->prepare( "$sql" );
$sth->execute();
$id = […]
DBIでMysql を使う時の文字コード指定 接続時
my $dbh = DBI->connect('DBI:mysql:database=sandbox;host=localhost;mysql_read_default_file=/etc/mysql/my.cnf',qw/id password/,);
または接続後に
$dbh->{ mysql_enable_utf8 } = […]
MAMP(Apache+MySQL)を使ってローカルでらくらくperl開発 MAMP
Apache+MySQLサーバをmacで動作させる事ができる。macにはもともとApacheもperlもインストールされているけど、バージョンが古いし、管理も面倒なのでMANPを使うメリットはおおいにあると思う。もともとはPHP+MySQLのローカル環境を構築するためのもの...かな?
参考:Mac OS Xのローカル環境(MAMP+MacPorts)で […]
DBIx::Customでデータベースの関数(MySQLのADDDATE()とかSUBDATE()とか)を使う DBIx::Customが生SQL感覚でも使えてお気に入りなのだけれど、ちょっこしハマったのでメモ。
DBIx::Custom - search.cpan.org
MySQL(に限らないと思う)でwhereに関数を利用したい時は多々あると思います。
例えば、更新時刻を見て7日以上古ければ選択しないという条件をwhereに指定したい時、
CREATE […]
Filed under: MySQL,プログラミング
Trackback Uri
最近のコメント