2010-01-20 (水)
*Excelの使い方
今日はExcelと格闘するなどした.とにかくデータ量が増えると何をするのも重い.一回クリックするごとに待たされるとかおかしい.使い方間違ってるのかなぁ.
とりあえず,Spreadsheet::WriteExcel に助けられた.Perlでエクセルのブックを生成できる.これでえくせるもこわくありません.調子に乗って,大量データを全部Excelの表にしてやった.とうか,なんでテンプレートに従って,複数のcsvをまとめる機能とか標準でないの?
事務系の職種なら「こんなにたくさんエクセルの表とか作りました」とか言って給料もらえるかもしれません(いや流石にもらえないか).
欠点は
- グラフを入れられない…グラフを入れるためにExcelで開くのかと思うと憂鬱
- 少し遅い…数万件のシートがたくさんあるとそれなりに待たされる
- インターフェイスがいまいち…Excelの仕様に引きずられたのかな
- 古いxls形式で出力される…xlsxでしょう
くらいか.グラフも自動で入れたいなぁ.
*MySQL Next-Key Locking
日本語の説明は分かりにくいけど,英語の説明は明快なので s/ja/en/した方がいいかも.
重要なのは存在しない行のロックでこのアルゴリズムが使われることです.
つまり,
CREATE TABLE test(id int primary key) type=InnoDB; INSERT INTO test VALUES(1),(2),(9),(10);
こんな感じのテーブルがあって,
BEGIN; SELECT id FROM test WHERE id=5 FOR UPDATE; INSERT INTO test VALUES(5); COMMIT;
このよくありそうなトランザクションの実行中に,他のトランザクションでid=6のロックに失敗します.