2008年9月アーカイブ
ほぇ??
なんで、今まで普通だったのに??っということで調査してみた
該当のプログラム抜粋
sub login {
my $self = shift;
my ($user, $pass) = @_;
my $loginForm = "https://www.google.com/accounts/ServiceLoginBox?service=analytics&nui=1&hl=en-US&continue=http://ww
w.google.com/analytics/home/%3Fet%3Dreset%26hl%3Den-US";
my $ua = $self->{ua};
my $req = HTTP::Request->new (GET => $loginForm);
my $res = $ua->request ($req);
die "Request failed" if (!$res->is_success);
あー、analyticsのpluginで、is_successで、こけてるのね
URL変わった??ってことで、URLを直にブラウザで叩いてみると・・・
ちゃんと表示される・・・あれ??
Request failedだけじゃ、わからん!!
レスポンスコードも出してみる
die "Request failed(". $res->code. ")" if (!$res->is_success);
結果は、「Request failed(501)」
501?????
ということで、チャチャっとググった感じで、以下のパラメータを変更してみた
SQL> ALTER SYSTEM SET SGA_TARGET=32M SCOPE=SPFILE; システムが変更されました。 SQL> ALTER SYSTEM SET PGA_AGGREGATE_TARGET=8M SCOPE=SPFILE; システムが変更されました。
そんで、SHUTDOWNして、STARTUPすると・・・
SQL> STARTUP ORA-00093: pga_aggregate_target must be between 10M and 4096G-1
おーーーーーぃ、10Mないとダメなんかいな・・・
じゃぁ、最初から設定させんでくれよ・・・orz
ということで、色々試してみたww
ということで、実際にinnodbと、myisamで実験開始!!
実験サーバスペック
Intel(R) Celeron(R) CPU 2.93GHz Memory 1GB
使ったのは、この2つのテーブル
mysql> SHOW CREATE TABLE innodb_test\G
*************************** 1. row ***************************
Table: innodb_test
Create Table: CREATE TABLE `innodb_test` (
`id` int(11) NOT NULL auto_increment,
`string` varchar(255) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1000001 DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
mysql> SHOW CREATE TABLE myisam_test\G
*************************** 1. row ***************************
Table: myisam_test
Create Table: CREATE TABLE `myisam_test` (
`id` int(11) NOT NULL auto_increment,
`string` varchar(255) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1000001 DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
レコード数は、2テーブルともに100万件です
mysql> SELECT SQL_NO_CACHE COUNT(id) FROM innodb_test; +-----------+ | COUNT(id) | +-----------+ | 1000000 | +-----------+ 1 row in set (4.40 sec) mysql> SELECT SQL_NO_CACHE COUNT(id) FROM myisam_test; +-----------+ | COUNT(id) | +-----------+ | 1000000 | +-----------+ 1 row in set (0.00 sec)
ちなみに、100万件投入したPerlスクリプトはこれ
#!/usr/bin/perl
use strict;
use warnings;
use String::Random;
use DBI;
my $dbh = DBI->connect('DBI:mysql:test2', 'user', 'pass');
my $str = String::Random->new();
my $sth = $dbh->prepare('INSERT INTO innodb_test(string) VALUES(?)');
for (1..1000000) {
my $rnd = $str->randregex('.{128,255}');
$sth->execute($rnd);
}
$sth->finish();
exit;
128~255byteまでのランダムな文字列を入れる簡単なスクリプトです

最近のコメント