2009-11-01から1日間の記事一覧

MySQLのロック/トランザクション機構メモ

sql

実践ハイパフォーマンスMySQL を読んで、基礎を学習中。備忘のためにメモ。 ロックとエンジン MySQLにはストレージエンジンがいくつかあるが、それぞれ使うロック方式が決まっている。 下にいくほど並行処理に強いが、その分だけ処理のオーバーヘッドが発生…

fetchrow時の使用メモリ

topコマンドで調べてもよく分からんので、http://www.drk7.jp/MT/archives/000803.htmlを参考にDevel::Size::Reportを使って調べてみる。上記サイトによれば SCALAR 型のデータは、Integer 型である場合、最小で16byte のメモリを必要とする。以後、32bit 単…

暗号化モジュール

そもそも暗号化に詳しくないので調べるところから。 http://x68000.q-e-d.net/~68user/net/crypt-1.htmlが入門にはわかりやすかった。 超ばっくり基礎知識 共通鍵方式 暗号化/復号化に同じ鍵を使う 通信に使う際は、鍵を共有する方法が問題になる アルゴリズ…

特殊変数$@と$!

$@はdie、$!はシステムコールのエラー eval {die "test";}; print "\$\@: $@\n"; eval { `not exists` }; print "\$!: $!\n"; $@: test at test.pl line 6. $!: No such file or directory

ディレクトリ

opendir, readdir, closedirを使う。 以下はカレントディレクトリの.logファイルをすべて探してくる例 opendir(THISDIR '.') or die "cannot open dir . $!"; my @allfiles = grep { /\.log$/ and -f } readdir THISDIR; closedir THISDIR;

時間関数

Time::Pieceが便利。 標準関数のlocaltimeをオーバーライドし、Time::Pieceオブジェクトを返してくれる。 後方互換なので標準関数的な書き方でもOK。例えば、その日の00:00:00のunix timeが欲しいときはこんな感じで。 use Time::Local; use Time::Piece; my…