参考
$ sudo yum install perl-CPAN
$ sudo cpan YAML DBD::mysql
$ sudo mysql -u root
mysql> set password for root@localhost=password('rootパスワード');
(mysql> create database test;)
mysql> create table test(num int, name varchar(50));
# DBI モジュールの読みこみ use DBI; # データソース $d = 'DBI:mysql:test'; # ユーザ名 $u = 'root'; # パスワード $p = 'password'; # データベースへ接続 $dbh = DBI->connect($d, $u, $p); # データベースの文字コードを設定を忘れずに # これを忘れるとTEXT型のデータが文字化けする。 my $sth = $dbh->prepare("set character set utf8"); $sth->execute; # SQL文を用意 ##################################### my $i = 1; my $sql = "insert into test (num, name) values (" . $i . ",'テスト')"; for($i=2; $i<=10000; $i++) { #my $sql = "insert into test (num, name) values (" . $i . ",'テスト')"; $sql = $sql . ",(" . $i . ",'テスト')"; print $i . "\n"; } $sth = $dbh->prepare($sql); # SQLを実行 $sth->execute; ##################################### my $i = 10001; my $sql = "insert into test (num, name) values (" . $i . ",'テスト')"; for($i=10002; $i<=20000; $i++) { #my $sql = "insert into test (num, name) values (" . $i . ",'テスト')"; $sql = $sql . ",(" . $i . ",'テスト')"; print $i . "\n"; } $sth = $dbh->prepare($sql); # SQLを実行 $sth->execute; # ステートメントハンドルオブジェクトを閉じる $sth->finish; # データベースハンドルオブジェクトを閉じる $dbh->disconnect;
password は設定したパスワードに変更。
$ time perl insert.pl
2.662秒。
Momonga7 1.616秒。