タグ

2008年4月15日のブックマーク (3件)

  • WEBシステム開発|PHPとPostgreSQLの開発例|データベースへのデータ投入

    13.4. データベースへのデータ投入データベースにデータを初期投入するために、大量のテーブル挿入操作を行う必要がままあります。 節では、この作業を効率良く行うためのちょっとした提言を示します。 13.4.1. 自動コミットをオフにする自動コミットを無効にし、最後に1回だけコミットします (普通のSQLでは、これはBEGINを開始時に、COMMITを最後に発行することを意味します。 クライアント用ライブラリの中にはこれを背後で実行するものもあります。 その場合は、要望通りにライブラリが行っているかどうかを確認しなければなりません)。 各挿入操作で別個にコミットすることを許すと、PostgreSQLは行を追加する度に多くの作業をしなければなりません。 1つのトランザクションで全ての挿入を行うことによるもう1つの利点は、1つの行の挿入に失敗した場合、その時点までに挿入された全ての行がロールバ

    akio0911
    akio0911 2008/04/15
  • 基礎から理解するデータベースのしくみ(5):ITpro

    SQL文を実行する際のパフォーマンスに大きな影響を及ぼすものとして,もう一つ,インデックスがあります。インデックスについては,どう定義すべきかというデータベース設計上の問題と,インデックスを有効に使うためのSQL文をどう書くべきかというコーディング上の問題があります。 ここではテーブル設計上の問題を主に取り上げます。SQL文のコーディングについては囲み記事「SQL文を最速にする11のポイント」を参照してください。 インデックスは,テーブルの検索速度を向上させるためのものです。それぞれのSQL文に対して最適なインデックスを定義するのが理想的ですが,実際にはある程度限られたインデックスで,必要なパフォーマンス要件を満たすようにインデックスを定義する必要があります。加えて,どんなSQL文が実際に発行されるのかがあらかじめわかっていない場合は,適当な想定に基づいてインデックスを定義しておかなくては

    基礎から理解するデータベースのしくみ(5):ITpro
  • CとしてもRubyとしても使えるプログラム - Maraigue風。

    どこかの誰かが「CとしてもRubyとしても使えるプログラム」を書いていたのですが、誰が書いた記事なのか完全に失念。del.icio.usにも何故か保存していなかった。 悔しいのでまずは自分で書いてみた。「//;」が結構ミソ。 #include <stdio.h> #define def int #define end #define BRACE { //; BRACE = nil def main(void) //; h = lambda{ BRACE printf("Hello World!!n"); } //; h.call end //; main(nil) [3/17追記]もっと簡単に書けることに気づく。 #include <stdio.h> #define def int #define BRACE { #define end } //; BRACE = nil def main

    CとしてもRubyとしても使えるプログラム - Maraigue風。
    akio0911
    akio0911 2008/04/15