■
$ psql -d qk -U dbuser -f /home/dbuser/app/sql/common.postal.sql
- 文字列型の使い分け — Let's Postgres
- NULLの許可(NOT NULL) - テーブルの作成 - MySQLの使い方
- NOT NULL はnullを許可するかどうか
- INTEGER PRIMARY KEYが設定されたカラム - テーブルの作成 - SQLite入門
- エンタープライズ:第1回 PostgreSQLで学ぶSQLデータベースの操作 (7/15)
PRIMARY KEYは、NOT NULLを兼ねる。よって、PRIMARY KEYと記述した列には、NOT NULLを記述してはならない。
- モダンPerlの世界へようこそ:第35回 DBI:生のSQLが散らばると言う前に|gihyo.jp … 技術評論社
- DBI - Perl用データベース独立インターフェース
- SQLiteとPerlで学ぶデータベースとDBIの基礎 - サンプルコードによるPerl入門
- Perl Hackers Hub:第9回 高速なWeb APIの実装とテスト―Mobage APIを支えるノウハウ(1)|gihyo.jp … 技術評論社
次の6つのメソッドの使い方を詳しく解説します。
selectrow_array()
selectrow_arrayref()
selectrow_hashref()
selectall_arrayref()
selectall_hashref()
selectcol_arrayref()
fetch というメソッドもあるが、これは fetchrow_arrayref の別名となっている。
fetch という短くてタイプしやすいメソッド名の権利を獲得したのは
fetchrow_array でもなく、fetchrow_hashref でもなく、fetchrow_arrayref
なのである。
これこそまさに fetchrow_arrayref を使うべし、という DBI 製作者のメッセージ
ではなかろうか (知らんけど)。
- set client_encoding - Google 検索
- 文字化け対策 mysql は set names
- PHPの方が軽くて速いは本当?
DBIの取出し効率はぶっちぎって速い。
bind_columnsを使えばもちろん、arrayrefだけでもPHPやPgを追い抜いてしまう。 といってもarrayrefを使っていればのお話。arrayやhashrefでは ほぼPgとほぼ同じかおいてかれてしまう。まぁ当然といえば当然。
DBIのメソッドで比較すると、やっぱりbind_columns+arrayrefが最速
そんなわけでbind_colmns > arrayref > array > hashref という予想通りというか順当な速度結果。
意外だったのはbind_columnsを使ったときの効率のよさ。arrayrefと比べてもかなり早い。