システム屋日誌

情報システム構築、開発手法を中心に気が付いたことを書き留めます。ちいさなことから、おおきなことまで。もちろん、どうでもいいことも。。。
<< October 2018 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 >>
 
RECENT COMMENT
RECENT TRACKBACK
れいねっとHP
http://www.rey-net.com
MOBILE
qrcode
PROFILE
無料ブログ作成サービス JUGEM
 
PHP+SQLite で郵便番号から住所を自動入力する
PHP+SQLite で郵便番号から住所を自動入力するパーツを開発中です。入力フォームに、いちいち住所を入力しなくても、郵便番号をいれれば、都道府県、市区町村まで自動的に入力できるようにするための、バックエンドの仕組みです。

まずは、設計です。
データを管理する方法を考えました。
(1)CSV (テキスト)
(2)MySQL
(3)SQLite

今回、1つだけ、データを取り出せればOK。
CSV だと、ランダムアクセスが不可なので、先頭から順番にシーケンシャル処理して、見つかったら終了するというアルゴリズムになるので、非効率的です。
MySQL を郵便番号だけのために構築するのは、おっくう。
そこで、(2)案に決定。

SQLite は、簡易 RDB です。
PHP と親和性の高い MySQL と比較すると、
MySQL との大きな違いは、データベースの管理が不要なこと。
本格的な RDB を使う場合、プログラムとは別にデータベース定義をする必要がありますが、SQLite はその必要がありません。
SQLite のエンジン部分が、内部的にサーバ上にバイナリファイルを作り、ブラックボックスで管理してくれます。

しかし、MySQL と比べると、速度の面で劣る、ドキュメントが少ないという欠点もあります。

特に INSERT は遅い。localhost でテストしたら、約8000件で数分かかっても終らない。SQLite の公式サイトみると、どうやらトランザクション処理にヒントがあるらしい。
http://www.sqlite.org/lang_transaction.html
速度面は、トランザクションを使えば、劇的に速くなりました。
コメント
コメントする









 
トラックバック
この記事のトラックバックURL
http://technology.rey-net.com/trackback/1061424