タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

databaseとlets-postgresとpostgresqlに関するnabinnoのブックマーク (282)

  • PHPでのSQLインジェクション対策 — Let's Postgres

    PHPでのSQLインジェクション対策 - プレースホルダ編 by Kiyoshi Sakai — last modified 2011-05-09 14:44 PHPでのSQLインジェクション対策にプレースホルダを使用したケースについて説明します。 PHPでのSQLインジェクション対策 - エスケープ・クォート編 by Kiyoshi Sakai — last modified 2011-06-08 23:30 PHPでのSQLインジェクション対策としてエスケープ、クォート処理を施すケースについて説明します。

  • PostgreSQL の構造とソースツリー(1) — Let's Postgres

    PostgreSQL では、ユーザが独自にユーザ定義関数の処理系を定義することができます。 そこで各種言語用のサーバサイドスクリプトがサードパーティーによって提供されています。 主なものとしては、Ruby, Java, PHP などがあります。 それでは、もう少し詳しく PostgreSQL の構造を見てみましょう。 バックエンド側はいくつかのプロセスから構成されています。 postgres (常駐プロセス) バックエンドを管理する常駐プロセスです。 "postmaster" とも呼ばれます。 デフォルトでは postgres は UNIX ドメインソケットと TCP/IP の 5432 番のポートを listen しており、フロントエンドがここに接続するのを待ち受けています (Windows など、一部のプラットフォームでは TCP/IP のみ)。 待ち受けるポート番号は Postgre

  • 現場で役立つ実践ノウハウWeb開発の「べし」「べからず」 | Let's POSTGRES

    ~性能を最大限に引き出すための設計・開発・運用~ 永安 悟史 記事は、技術評論社 WEB+DB PRESS Vol.63 で掲載されたものを、著者と出版社の許可を得て転載したものです。なお、一部 記述に変更のある箇所もあります。 アーキテクチャから理解するデータベース データベースの技術は長い歴史の蓄積があり、その実装であるデータベース製品は非常に複雑なソフトウェアとなっています。そのため、深く理解するにはそれなりの学習期間と経験を必要とします。 章では、データベースの中でも特にリレーショナルデータベース(RDBMS)について、理解するためのポイント/観点と、具体的に開発/運用時に注意すべき点について解説します。 データベースの理解は「立体的」に データベースの挙動をきちんと理解するためには、データベースを構成する要素を「立体的」、つまり複数の角度/軸で理解する必要があります。 処理の

  • 現場で役立つ実践ノウハウWeb開発の「べし」「べからず」(試験編) | Let's POSTGRES

    ~性能を最大限に引き出すための設計・開発・運用~ 永安 悟史 記事は、技術評論社 WEB+DB PRESS Vol.63 で掲載されたものを、著者と出版社の許可を得て転載したものです。なお、一部 記述に変更のある箇所もあります。 【試験】サービス開始に向けて、確認・記録する データベース開発の試験フェーズでは、機能的な動作確認は当然ながら、パフォーマンスやバックアップ/リストアなどの、いわゆる「非機能試験」を行うことになります。節では、データベース特有の試験について、いくつかのポイントを解説します。 【べし】 SQLの実行計画(EXPLAIN)を確認すべし まず、アプリケーションから実行されるSQLは、EXPLAINコマンドなどを用いて、実行計画を確認しておく必要があります(リスト5)。動的なSQL(アプリケーションの内部でSQL文を組み立てるようなケース)の場合は、SQLの実行ログを

  • PHPから見たPostgreSQLの数値データ型(数値リテラル) | Let's POSTGRES

    smallintはint2、integerはint4 およびint、bigintはint8と同意です。またsequenceを使うという機能を除けば、serialはintegerと、bigserialはbigintと同様の動きをします。これらは小数点以下のない「整数値」です。 serial、bigserialの値のフォーマット・範囲のチェックなどはinteger、bigintと同じですので、以下はそれぞれに読み替えてください。 64bitシステムでの整数値のチェック smallintとinteger まず、値が負でない(すなわちマイナス記号がつかない)ことを必須にしてしまってよければ、smallintやintegerのチェックは簡単です。 if(!ctype_digit($_REQUEST['num']) || $_REQUEST['num'] > 32767) { // NG処理 } これ

  • PHPから見たPostgreSQLの数値データ型(数値リテラル) | Let's POSTGRES

    smallintはint2、integerはint4 およびint、bigintはint8と同意です。またsequenceを使うという機能を除けば、serialはintegerと、bigserialはbigintと同様の動きをします。これらは小数点以下のない「整数値」です。 serial、bigserialの値のフォーマット・範囲のチェックなどはinteger、bigintと同じですので、以下はそれぞれに読み替えてください。 64bitシステムでの整数値のチェック smallintとinteger まず、値が負でない(すなわちマイナス記号がつかない)ことを必須にしてしまってよければ、smallintやintegerのチェックは簡単です。 if(!ctype_digit($_REQUEST['num']) || $_REQUEST['num'] > 32767) { // NG処理 } これ

  • file_fdw | Let's POSTGRES

    FORCIA, Inc. 板垣 貴裕 PostgreSQL 9.1 では、データベース外部のデータをテーブルとして扱うことができる、外部テーブル (FOREIGN TABLE) がサポートされました。 file_fdw モジュールは、タブ区切りや CSV 形式のファイルをテーブルとして読み込むためのモジュールです。 データを取り込むだけならば、以前から COPY FROM コマンドがありましたが、いったんテーブルに格納する手間が省けるため、気軽に外部ファイル連携できます。 他のデータベースの機能に対応させると、MySQLCSV ストレージエンジンや、Oracle Database の外部表と類似の機能といえます。 基的な使い方 file_fdw でシフトJISエンコーディングのタブ区切りのファイルを読み込むコマンド例を以下に示します。 モジュールのインストールに CREATE EX

  • ログ解析にパーティショニングを利用してみよう | Let's POSTGRES

    Hitoshi Harada ここまでで一通り分析を終えました。ある時点での分析を行うことももちろんのこと、継続的にログを分析していき結果を比較していきたいものです。今回のデータは6日ばかりを対象にしているためデータサイズは大きくありませんでしたが、1ヶ月、1年と経過するにつれてサイズが増大します。ここでは、分析を継続していくために必要なテーブルパーティショニング(分割)の技術についてご紹介します。パーティショニングについてはこちらでも紹介しています。併せてお読み下さい。 PostgreSQLにおけるパーティショニング 9.0 現在、PostgreSQLにおけるパーティショニング機能とは、単一ノードにおける水平分割です。つまり、1マシン上において、行を選り分けることでテーブルを分割します。世の中のRDBMSには垂直分割(列による選り分け)をサポートしたり複数ノード(複数のマシン上にテーブル

  • pgpool-II 3.2 の新機能 | Let's POSTGRES

    はじめに 2012 年 8 月にリリースされた pgpool-II 3.2 では、    DBへの検索リクエストを実効的に高速化するオンメモリクエリキャッシュ、 可用性を高めるウォッチドッグ機能などが搭載され、より PostgreSQL を高速、安全に利用できるようになりました。 記事では、まず pgpool-II 3.2 の概要を説明します。オンメモリクエリキャッシュとウォッチドッグに関しては、 別ページで詳細に解説します。 pgpool-IIとは pgpool-II についてまだあまりご存知のない方のために、pgpool-II とは何かという事を簡単にご紹介します。 すでに pgpool-II についてよくご存じの方は、次の章までとばして頂いて構いません。 pgpool-II は、PostgreSQL のクライアントアプリケーションと、(複数の)PostgreSQL の間に割り込んで

  • 目的別ガイド | Let's POSTGRES

    メインコンテンツに移動 ブックナビゲーション 目的別ガイド:導入検討編 目的別ガイド:インストール編 目的別ガイド:運用管理編 目的別ガイド:チューニング編 目的別ガイド:サポート編 目的別ガイド:内部解析編 RSS feed

  • HOTの活用 | Let's POSTGRES

    現在 (2009年1月) の最新版であるPostgreSQL8.3では、「HOT」と呼ばれる機能が追加されています。この「HOT」により、PostgreSQLの更新処理性能が劇的に向上し、ガベージ発生量が大幅に減少しました。シリーズでは3回に分けて、この「HOT」の効果や仕組み、そして上手な使い方を詳しく解説していきたいと思います。

  • PostgreSQL 9.0 のその他の新機能 | Let's POSTGRES

    この記事では、PostgreSQL 9.0 の概要記事だけでは紹介しきれなかった、9.0のその他の新機能についてまとめています。 SQL 構文の強化 string_agg 文字列を連結して集約する string_agg 関数が追加されました。 以前のバージョンでも array_agg + array_to_string で同じ結果が得られますが、より高速です。 他のデータベースにも同様の関数はありますが、MySQL では group_concat()、Oracle Database では listagg() と名前は異なります。 =# SELECT array_to_string(array_agg(t), '+'), string_agg(t, '+') FROM tbl; array_to_string | string_agg -----------------+----------

  • PostgreSQL 9.0 のその他の新機能 — Let's Postgres

    NTT オープンソースソフトウェアセンタ 板垣 貴裕 PostgreSQL の主要な新機能はこちらを参照してください。 Windows のイベントログやコンソール出力の文字化け修正 PostgreSQL で日語を扱う場合、サーバエンコーディングには UTF-8 または EUC_jp を選ばなければなりません。しかし、Windows のイベントログやコンソールではエンコーディングを SJIS にして出力する必要があるため、サーバログが文字化けしていました。v9.0 ではログをユニコードで出力するようになり、この問題が解消されています。 pg_ctl reload した際に変更があったパラメータをログに出力 どのパラメータが変更されたかが分かりやすくなりました。 ALTER TABLESPACE seq_page_cost, random_page_cost テーブルスペースごとにオプティマ

  • PostgreSQL上にMediaWiki環境を構築 (3) | Let's POSTGRES

    これまでで失敗した操作はありますか? もしあればトラブルシュートを参考にしてください。また、PostgreSQL が実際に動作している様子を見てみましょう。 トラブルシュート エラーログを確認する うまくいかない操作があった場合、PostgreSQLやApacheのエラーログを確認することで、原因が解明できるかもしれません。それぞれのエラーログは、以下の場所に保存されています。 PostgreSQL : C:\Program Files\PostgreSQL\8.3\data\pg_log\postgresql-年-月-日_時分秒.log Apache : C:\Program Files\PostgreSQL\EnterpriseDB-ApachePhp\apache\logs\error.log PostgreSQLのログを見てもエラーは無かったのですが、少し気になるログが出力されてい

  • dblink | Let's POSTGRES

    NTT オープンソースソフトウェアセンタ 板垣 貴裕 他の PostgreSQL データベースを SQL から直接操作できるモジュール "dblink" の使い方を紹介します。 dblink を使うと、分散環境で複数のデータベースをまたがる処理を行ったり、同じサーバ内の別のデータベースを操作することができます。 dblink の構成 dblink では、接続中のバックエンド・プロセスが別のバックエンド・プロセスに libpq ライブラリを用いて接続します。 このプロセスは、PostgreSQL のサーバプロセスでありながら、クライアントでもあるという構成になっています。 別のバックエンド・プロセスは、同一サーバ(インスタンス)であることもありますし、別マシンの別サーバへ接続することもできます。 基的な使い方 インストールと簡単な使い方 最初に dblink をインストールします。 RPM

  • systemtapで動的追跡をしよう — Let's Postgres

    NTT オープンソースソフトウェアセンタ 笠原 辰仁 はじめに PostgreSQLのバージョン8.2から、Soralis, FreeBSD, Mac OSXなどで使用可能なDtraceという情報取得ツールに対応しました。Dtraceを使うと、PostgreSQLのトレーシング (ある処理がどのような関数等を通過してきたかの解析) やプロファイリング (ある期間にどんな処理がどれだけ実施されたかの解析) が可能になります。PostgreSQLのマニュアルでも動的追跡という項で紹介されています。これを利用することで、ボトルネックの発見などが可能になります。 Linuxでは、Dtraceの類似の機構としてSystemtapというツールが備わっています。来は、カーネル内部のトレーシングやプロファイリングを主な目的としたツールですが、ユーザアプリケーションの情報取得も可能です。記事では、Sys

  • 文字列処理と日本語全文検索 | Let's POSTGRES

    文字列型の使い分け PostgreSQL には文字列型として char, varchar, text など複数がありますが、使い分けはあるでしょうか? データ型を一覧としてまとめ、文字列型それぞれの特徴を解説していきます。 ロケール(国際化と地域化) ロケール (国際化と地域化) 設定の効果と設定方法を紹介します。Cロケール以外に設定する場合の機能面での利点と、性能面での欠点について解説します。 テキスト検索の方法とインデックス テキストの各種検索方法を比較します。検索の方法によってはインデックスを使うことができ、高速な検索ができます。それぞれのアプリケーションの条件に適したテキスト検索の方法やインデックスの張り方を選んで行きましょう。 文字列処理の比較 文字列の処理に関して、PostgreSQLSQL関数と、プログラミング言語 (Java, JavaScript) が提供する関数を

  • PostgreSQL 超入門 第1回(1) — Let's Postgres

    この記事は、PostgreSQL とは何か、リレーショナルデータベースとは何かをわかりやすく説明するためのものです。 もしあなたがデータベースについて聞いたことがない、あるいは、言葉くらいしか知らないのであれば、そして、これからデータベースに関わっていくのであれば、ぜひこの記事を注意深くお読みいただきたいと思います。 記事の記述内容で分かりにくい、不適切な部分、もっと知りたいことなどございましたら、ぜひ著者までご一報下さい。なるべく早い時期にこの記事に反映したいと思います。 【第1回】データベースとデータベース管理システム 1.1 データベース管理システムが扱うデータ 1.2 データーベース管理システムとアプリケーション 1.3 データベース管理システムはデータベースを守る 1.4 データベースを使うと何人もの人が同時にデータベースを使える 【第2回】PostgreSQL って何? 【第3

  • 入門向けの記事 | Let's POSTGRES

    メインコンテンツに移動 概要、導入、機能紹介、トラブルシュートなどの利用ガイドです。 ブックナビゲーション 入門向けの記事 OSS の開発コミュニティってどんなところ? PostgreSQL が私に与えてくれたもの PostgreSQL 超入門 第1回 これを読めば PostgreSQL の全てが分かる!PostgreSQL ガイドブック サンフランシスコのPostgreSQL事情 PostgreSQL上にMediaWiki環境を構築 キャストを追加してバージョン互換性を保つには HOTの活用 PostgreSQLでXMLを処理してみよう! CentOS で PostgreSQL を使ってみよう! Mac OS X で PostgreSQL を使ってみよう RPMで複数バージョンのPostgreSQLをインストールしてみよう UbuntuでPostgreSQLを使ってみよう Windows

  • PostgreSQL 9.0 β1 がリリースされました — Let's Postgres

    下記は、The PostgreSQL Global Development Group のアナウンス文をお知らせ用に編集委員会の稲葉香理が日語化しました。読みやすさなどを重視し、必ずしも原文に忠実に訳していません。原文は、こちらからご覧ください。 2010年4月29日 PostgreSQL 9.0 Beta1 がリリースされました。 メジャーバージョンアップである9.0の最初のベータバージョンとなります。 9.0 は PostgreSQL に初めてスケールアウト可能な組み込みのレプリケーション機能が搭載されています。 この機能は、「ホットスタンバイ」と「ストリーミングレプリケーション」という2つの機能から構成されています。このリリースで、新しいアプリケーションでの利用が広がりPostgreSQL採用の幅が広がることでしょう。 このリリースはベータバージョンです。ベータバージョ