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

PostgreSQLのすべてのバージョン。そのコンテキストが重要な場合は、postgresql-11などのバージョン固有のタグを追加します。

3
最小限のダウンタイムでherokuデータベースをAmazon RDSに移行する
heroku postgresデータベースがあり、それをAmazon RDSに移行してコストを節約したい。最小のダウンタイムでこれを行う方法は何ですか?通常、これには、データベースをリアルタイムで複製し、複製されたDBをメインDBとして昇格することが含まれます。 フォロワーデータベースを使用してheroku内のDBを移行でき、リードレプリカデータベースを使用してAmazon RDS内のDBを移行できることを知っています。自分のAmazon RDSにあるheroku DBのデータベースレプリケーションを作成する同様の方法はありますか?

3
WHERE条件とGROUP BYを使用したSQLクエリのインデックス
WHERE条件付きのSQLクエリに使用するインデックスと、GROUP BY現在非常に遅いインデックスを決定しようとしています。 私のクエリ: SELECT group_id FROM counter WHERE ts between timestamp '2014-03-02 00:00:00.0' and timestamp '2014-03-05 12:00:00.0' GROUP BY group_id テーブルには現在32.000.000行があります。時間枠を増やすと、クエリの実行時間が非常に長くなります。 問題のテーブルは次のようになります。 CREATE TABLE counter ( id bigserial PRIMARY KEY , ts timestamp NOT NULL , group_id bigint NOT NULL ); 現在、次のインデックスがありますが、パフォーマンスはまだ遅いです。 CREATE INDEX ts_index ON counter USING btree (ts); …

1
上位のデータベースプラットフォームで符号なし整数型が利用できないのはなぜですか?
データベースは通常、さまざまなデータ型とカスタムの長さで非常にカスタマイズ可能です。 unsigned intPostgreSQLとMS SQL Serverのどちらからも利用できない型を使用する構文を探しているので、私は驚きました。MySQLとOracleのようです。 これは明白な省略のように見えます-次に最適なパフォーマンスオプションはlong / bigint(8バイト整数)ですが、完全に不要な場合があります!ネイティブのunsigned intサポートを含めないことを選択する理由を誰もが知っていますか?


2
PgBouncerトランザクションレベルプーリングのためにSQLAlchemyで接続プーリングを最適に使用する方法は?
SQLAlchemyを使用して、トランザクションレベルのプーリングを使用して、PgBouncerの背後にあるPostgreSQLデータベースを照会します。 この種のセットアップに使用する最適なパターンは何ですか?を使用してプロセスごとに1つのエンジンを使用するConnectionPool必要がありますか、または要求ごとにエンジンを作成し、NullPoolそれらのそれぞれに使用する必要がありますか?使用する必要がある別のパターンはありますか? どうもありがとう!さらに情報が必要な場合はお知らせください。できるだけ早く更新します。

4
autovacuumがオンになっている場合、PostgreSQLデータベースを手動でVACUUMする必要がありますか?
私は大きなPostgreSQLデータベース(その中に百万行を持つテーブルがある)と、開発者は、私がすべきと言うするソフトウェアを使用VACUUMしてANALYZE定期的に。ただし、PostgreSQLデータベースのデフォルトはautovacuumオンになっています。 まったく掃除機をかける/分析する必要がありますか?利点は何ですか?自動真空と手動真空の違いは何ですか たとえば、Pgadmin3では、これがあります。

1
PostgreSQLの金融アプリの認証アプローチの選択
最初にいくつかの背景。 LedgerSMBプロジェクトは、PostgreSQLで実行されるオープンソースの財務会計ソフトウェアプロジェクトです。ユーザー定義関数に非常に大量のビジネスロジックを実装します。これらは、プログラムオブジェクトメソッドとデータベースの動作間の主要なマッピングツールとして機能します。現在、認証ユーザーとしてデータベースユーザーを使用します(一部は選択(これにより中央集中型のセキュリティロジックが可能になり、他のツールを記述してユーザーに与えられたアクセス許可を再利用できます))。また、一部は必要に応じて(SQL-Ledgerそのコードベースにセキュリティをレトロフィットするオプションはあまりありませんでした)。 これにより、LDAPからKerberos 5まで、PostgreSQLがアクセスできる合理的な数のシングルサインオンオプションにアクセスできます。パスワードが関係する場所でもPAMを使用できます。また、他のアプリケーションと統合したり、他のクライアントインターフェイスを許可したりするときに、アクセス許可を再利用できます。財務会計アプリケーションにとって、これは正味の勝利のように思えます。 明らかにコストがかかります。Webアプリケーションの場合、サポートできるHTTP認証のタイプは非常に限られています。たとえば、DIGESTは完全に除外されています。BASICが機能し、KRB5を簡単に実装できます(これは1.4でサポートされ、そのまま使用できるようにする予定です)。非常に強力な認証対策は、これを直接適切に管理することはできませんが、おそらく必要に応じてそれらをシムできます(たとえば、ユーザー名と特定のルートCAに一致するcnを持つBASIC +クライアント側SSL証明書)。 同時に、主に開発群衆から、そして時折、アプリケーションはデータベースではなくセキュリティバリアであるべきだと言うdbaからかなりの批判を受けています。私の見解では、セキュリティ境界は小さいほうが一般的に優れており、ビジネスロジックとセキュリティロジックの再利用が一緒になり、同じレベルでセキュリティロジックを再利用せずにビジネスロジックを再利用するのは危険だと思いますプログラムの。 ここで大きなトレードオフがありませんか?私が検討していない落とし穴はありますか?

3
PostgreSQLとMySQL:空間的特徴の比較
現在、空間データコンポーネントを持つWebアプリケーションを構築しています。空間データの比較では、最初に特定のポイントを取得し、一致する重複した空間ポリゴンを返します。 そうは言っても、私たちのデータベースには、一般的なリレーショナルデータベースで見られるすべての典型的なものを含む他の多くのコンポーネントがあります。 私たちはプロジェクトで、使用するデータベースソリューションを選択する必要があります。 すべてのプロジェクトメンバーは、MySQLの実装と管理に精通していますが、すべての研究では、特にpostGISを使用した空間データに関して、PostgreSQLがより優れたソリューションであることが示唆されています。 私たちのアプリケーションが多くの同時ユーザーで多くのアクションを体験することを期待しています。 空間データコンポーネントを使用してRDBMSとしてMySQLを使用した経験がある人には、長期的なアドバイスや経験がありますか? PostGISを使用することの不便さはありますか?

5
PostgreSQL:データベースクラスターの初期化に失敗しました
両方C:\PostgreSQLと完全なアクセス権と管理者権限をC:\PostgreSQL\data持つpostgresユーザーがいます。 postgresユーザーからpostgresql-9.1.2-1-windows.exeをadminとして実行しました。目標C:\PostgreSQL 試行するたびに、「データベースクラスターの初期化に失敗しました」というメッセージが表示されます。 ご質問 Windowsサービスでなくてもすべて実行できますか? Windowsサービスとしてインストールする回避策はありますか? GeoDjangoで動作するようにPostGISをセットアップしようとしています。 PostGISを手動でインストールできました。PostgreSQLの初心者であり、私はこれらすべてに自信の危機に直面しています。MySQLからPostgreSQLに初めて来ました。 C:\ Users \ Larry \ AppData \ Local \ Temp \ install-postgresql.logからの関連するログ出力: WScript.Network initialized... Called IsVistaOrNewer()... 'winmgmts' object initialized... Version:6.1 MajorVersion:6 Ensuring we can read the path C: (using icacls) to Larry: Executing batch file 'radA3CF7.bat'... Output file does not exists... Called …

1
varchar(n)のオーバーヘッドは何ですか?
型に関するPostgres docからこのフラグメントの意味を尋ねたいと思いましたvarchar(n)。 短い文字列(最大126バイト)のストレージ要件は、1バイトに実際の文字列を加えたもので、文字の場合はスペースの埋め込みが含まれます。長い文字列には、1ではなく4バイトのオーバーヘッドがあります。 私にはvarchar(255)フィールドがあると仮定しましょう。そして今、次のステートメント: このフィールドが10バイトの文字列を保持する場合、オーバーヘッドは1バイトです。したがって、文字列は11バイトを使用します。 フィールドに140バイトを使用した文字列が含まれている場合、オーバーヘッドは4バイトです。したがって、文字列は144バイトを使用します。 上記のステートメントは真実ですか?ここで誰かが私と同じようにドキュメントを理解していますが、ここでは誰かがオーバーヘッドが常に4バイトであると述べていますか?

1
インデックスは `= any()`では使用されず、 `in`で使用されます
テーブルにtは2つのインデックスがあります。 create table t (a int, b int); create type int_pair as (a int, b int); create index t_row_idx on t (((a,b)::int_pair)); create index t_a_b_idx on t (a,b); insert into t (a,b) select i, i from generate_series(1, 100000) g(i) ; any演算子ではインデックスは使用されません。 explain analyze select * from t where (a,b) = …

1
日付範囲の一意性制約
pricesこれらの列を持つテーブルを考えてみましょう。 id integer primary key product_id integer -- foreign key start_date date not null end_date date not null quantity integer price numeric データベースには、日付範囲内の特定の数量で1つの価格しか持てないというルールを適用したいのですが(を介してwhere <date> BETWEEN start_date AND end_date)。 この種の範囲ベースの制約は実行可能ですか?

4
pg_dumpで拡張機能をスキップするにはどうすればよいですか?
これは9.3にありますが、7.x以降に発生した同様のことを覚えています。そこで、データベースを作成し、plpgsql拡張機能をインストールします。後でpg_dumpを作成し、それをデータベースに復元する前に、plpgsql拡張機能も持っていることを確認します。次に、これを復元するときに発生します: pg_restore: creating EXTENSION plpgsql pg_restore: creating COMMENT EXTENSION plpgsql pg_restore: [archiver (db)] Error while PROCESSING TOC: pg_restore: [archiver (db)] Error from TOC entry 2053; 0 0 COMMENT EXTENSION plpgsql pg_restore: [archiver (db)] could not execute query: ERROR: must be owner of extension plpgsql Command was: COMMENT ON EXTENSION plpgsql …

3
最も効率的なUUID列タイプは何ですか
128ビットUUIDを保存するには、複数の保存オプションがあります。 byte [16]列 2つのbigint / long(64ビット)列 CHAR(36)列-32桁の16進数+ 4つのダッシュ。 dbがサポートしている場合、UUIDデータベース固有の列 インデックスの観点から、どれが最も効率的ですか?データベースが専用のuuidタイプをサポートしていない場合、1、2、3のうちどれが最適な候補ですか?

2
psql:致命的:申し訳ありませんが、すでにクライアントが多すぎます
postgresqlデータベースを使用するWebサイトにアクセスしようとしたとき、またはpsqlユーティリティまたはpgadmin3を使用しているときでも、突然このエラーが発生します。 私のデータベースは、最大150の接続を処理するように設定されています。 # SHOW max_connections; max_connections ----------------- 150 (1 row) 私のウェブサイトがオンになっているubuntuサーバーを再起動すると(実際に接続を使用しているのはこれだけです)、現在の接続量は140です: # select count(*) from pg_stat_activity; count ------- 140 (1 row) サーバーを再起動した後、どれだけ突然接続が急増したのかわかりません。だから私はpostgresqlアクティビティをチェックします: # SELECT * FROM pg_stat_activity; そして、次のようなまったく同じクエリを持つ100を超える列が表示されます。 SELECT "reports".* FROM "reports" WHERE (("reports"."time" < '2014-06-28 13:30:42.000000' AND "reports"."unit_id" = 3192)) ORDER BY "reports"."id" DESC LIMIT 1 さらに重要なのは、それらがすべて同じクライアントアドレス(私のWebサーバー)を持っていることです。 このWebサーバーは、接続プールが50のRails on …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.