タグ付けされた質問 「bytea」


3
PostgreSQL 8.4を使用して、postgresでbyteaをテキスト値に変換する方法は?
私のアプリケーションでは、Cコードを使用してデータベースにデータを挿入します。信頼できないソースから受け取った文字列PQescapeByteaConnはlibpqライブラリを使用してエスケープしているためです。これは完全に正常に機能しています。つまり、Octet形式の文字列になります。以下の例を参照してください、 入力文字列: \n\t\f\b\p\k\j\l\mestPrepared 出力文字列: \\012\\011\\014\\010pkjlmestPrepared 出力文字列がデータベースに挿入されます。次に、JDBCを使用してJavaコードでデータベースからそのデータを取得します。文字列を元の値に戻すにはどうすればよいですか? 私は2つの可能なアプローチを考えました、 データベース検索クエリを変更し、このフィールドをpostgresの文字列操作関数、つまりbyteaをテキストに変換できる関数に渡します。 Javaコードでデコードを行います。 アプローチ1の方が効率的であることを理解できます。ここにリストされているほとんどすべての機能を試しましたが、何も機能していません。助けてください!! Linuxマシンでpostgresのバージョン8.4を使用しています。

1
多くのINSERTとbyteaの更新のためにPostgreSQLを最適化します
私たちが持っているもの(ソフトウェア): 基本構成のPostrgeSQL 9.3(変更なしpostgresql.conf) Windows 7 64ビット ハードウェア: インテルCore i7-3770 3.9 Ghz 32 Gb RAM WDC WD10EZRX-00L4HBAtaドライブ(1000Gb、SATA III) したがって、DB aproxにロードする必要があります。bytea列を含む100.000.000行、およびより単純な500.000.000行(LOBなし)。1つ目のテーブルには2つのインデックス(長さ13、19)があり、2つ目のテーブルには2 つのインデックス(長さ18、10)があります。各テーブルのID生成のシーケンスもあります。varcharvarchar 現在、これらの操作は、JDBCバッチサイズ50と並行して8つの接続で実行されています。次の図は、システム負荷を示しています。これはpostgresqlプロセスの負荷がゼロです。24時間のロード後、10.000.000行しかロードしていません。これは非常に遅い結果です。 以下のPostrgreSQL目的で、構成の調整について支援を求めています。 1)この量のデータを超高速でロードする場合、これは1回のみの操作であるため、一時的な構成になる可能性があります。 2)結合やソートを行わずに、インデックスによってこれら2つのテーブルに適度な数のSELECTを実行する本番モードの場合。

1
PostgreSQL byteaとsmallint []
大規模な(100Mb-1 GB)マルチチャネル時系列データをPostgreSQLデータベースにインポートしようとしています。データは、通常はそれぞれ数秒の「レコード」または「エポック」にデータを分割するEDF形式のファイルから取得されます。各エポックのレコードは、データの各チャネルの信号を短い整数の順次配列として保持します。 最悪の場合、BLOBとしてデータベース内にファイルを保存するように義務付けられています。そこで、信号データに基づくクエリを容易にするなど、データベース内のデータをさらに活用できるオプションを調査したいと思います。 私の最初の計画は、エポックレコードごとに1行としてデータを格納することです。私が比較検討しているのは、実際の信号データをbyteaまたはsmallint [](またはsmallint [] [])のどちらのタイプとして格納するかです。誰かが他のものを推薦することはできますか?ストレージとアクセスのコストに興味があります。使用法は、1回挿入され、時々読み取られ、決して更新されない可能性があります。レコードを比較して分析するための関数を追加できるように、カスタムタイプとしてより簡単にまとめることができれば、はるかに優れています。 間違いなく私は詳細が低いので、私が明確にしてほしいことについてコメントを追加してください。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.