勉強中の人にはいいかも。 PostgreSQL Exercisesを使えば、(名前のままだが)ブラウザ上でPostgreSQLの勉強をすることができる。 課題が与えられるので、それを実現するための命令を書いていけばOKだ。 実行結果もその場でわかるので理解しやすいだろう。 なお、分量もそこそこあるので、これらを解くことができれば一応基本はマスターしたことになるのではなかろうか。興味がある人はチャレンジしてみるといいですな。
![オンラインでPostgreSQLの練習ができる『PostgreSQL Exercises』 | 100SHIKI](https://cdn-ak-scissors.b.st-hatena.com/image/square/7a08ed7011550bfdd96844ed1833aa7bde01aabf/height=288;version=1;width=512/http%3A%2F%2Fwww.100shiki.com%2Fdocs%2F201312%2F21_logo.gif)
PostgreSQLPostgreSQLのコマンドをメモ。SSH // パッケージの確認 $ rpm -qa|grep 'postgres' // アンインストール $ yum remove postgresql // インストール $ yum install postgresql-tcl postgresql-server postgresql-contrib postgresql // サービスの起動 $ /etc/init.d/postgresql start // データベース一覧(postgresユーザー) $ psql -l // データベースの作成(オプション:文字コードの指定) $ createdb -U postgres -O postgres -E utf8 データベース名 // データベースの作成 $ dropdb -U postgres -W (データベース名)
平素よりQA@ITをご利用いただき、誠にありがとうございます。 QA@ITは「質問や回答を『共有』し『編集』していくことでベストなQAを蓄積できる、ITエンジニアのための問題解決コミュニティー」として約7年間運営をしてきました。これまでサービスを続けることができたのは、QA@ITのコンセプトに共感をいただき、適切な質問や回答をお寄せいただいた皆さまのご支援があったからこそと考えております。重ねて御礼申し上げます。 しかしながら、エンジニアの情報入手方法の多様化やQAサービス市場の状況、@ITの今後のメディア運営方針などを検討した結果、2020年2月28日(金)15:00をもちましてQA@ITのサービスを終了することにしました。 これまでご利用をいただきました皆さまには残念なお知らせとなり、誠に心苦しく思っております。何とぞ、ご理解をいただけますと幸いです。 QA@ITの7年間で皆さまの知識
こんばんは、牧野です。 今日は前々回の話題に戻って、PostgreSQLのチューニングの話です。 この前は重いSQLをどうやって見つけるか紹介しました。今回は処理を速くするためのSQLの具体例を紹介します。 1.インデックスを使う 以前も書いたので省略しますが、データ数が多くなってくると(数万件以上とか)インデックスが正しく使えているかどうかで負荷のかかり方が大きく変わってきます。 複数カラムの条件検索の場合は、必要に応じて複合インデックスを作成します。その時は、プログラムの方でWHERE句の順番に気をつけましょう。 2.VACUUMとREINDEX 特にバッチプログラムで頻繁にデータ更新を行うようなテーブルがある時は要注意です。VACUUMをしないままで運用していくと大変なことになる場合があります。バッチ処理の後等定期的にVACUUMするようにしましょう。 自動バキュームを使うのも有効で
以下の5ステップで,適切なインデックスを作成し,SQLを高速化できる。 (1) パフォーマンスを改善すべきSQL(もしくはカラム)を特定 (1−1) ログを閲覧し,実行秒数の大きいものを抽出する。 (1−2) 統計テーブルを閲覧し,よく利用されるテーブルを特定する。 (2) 該当SQLのプランやコストを確認 (3) 該当カラムに対してインデックスを作成 (4) インデックスが作成されたことを確認 (5) SQLのプランやコストが改善されたことを確認 補足 ※↑ もくじジェネレータ で自動生成 DBはPostgreSQLを想定。 (1)パフォーマンスを改善すべきSQL(もしくはカラム)を特定 まず,インデックスを作成すべきカラムを見極める。 その方法は2つある。 (1−1)ログを閲覧し,実行秒数の大きいものを抽出する。 SQLの実行ログを閲覧する。 たとえば,Ruby on Railsなら,
postgreSQL で id とかのフィールドで自動的に番号が増えていく、auto_increment みたいな設定をテーブルにすると、シーケンスが作られる。 例えばこんなテーブルを作ると CREATE TABLE users( id SERIAL PRIMARY KEY, name VARCHAR(255) ); こんなんなる。 Schema | Name | Type | Owner --------+--------------+----------+---------- public | users | table | postgres public | users_id_seq | sequence | postgres しばらく users にデータをインサートした後で、 このシーケンスに対してセレクトをかけると、 SELECT * FROM users_id_seq ; こ
Accessで作った既存のデータベースをPostgreSQLにエクスポートすると、オートナンバー型がinteger型に変更されます。 これをPostgreSQL上でもオートナンバーになるように、デフォルト値を直前の数値をインクリメントした値に設定します。 カラムを新規作成するときにはデータ型[SERIAL]を選べばいいのですが、途中で変更するのはちょっと面倒な処理が必要です。 SQLのCREATE SEQUENCEを使うわけですが、phpPgAdminだとGUIから登録可能。 簡単な流れは以下のとおり。 [シーケンス]に開始値を指定して登録 該当カラムの[デフォルト]に「nextval('"[作成したシーケンス名]"'::regclass)」を追加 詳細な処理は以下。 [シーケンス]に開始値を指定して登録 該当データベースからスキーマを選択します。何も指定せずエクスポートした場合には「pu
目次22.1. SQL によるダンプ22.1.1. ダンプのリストア22.1.2. pg_dumpall の使用22.1.3. 大規模データベースの扱い22.1.4. 警告22.2. ファイルシステムレベルのバックアップ22.3. オンラインバックアップとポイントインタイムリカバリ(PITR)22.3.1. WAL保管の設定22.3.2. ベースバックアップの作成22.3.3. オンラインバックアップを使用した復旧22.3.4. 時系列22.3.5. 警告22.4. リリース間の移行 貴重なデータを全て保存しているため、 PostgreSQL データベースは定期的にバックアップされなければなりません。 バックアップの手順は基本的に簡単ですが、底流にある技術といくつかの仮定となる条件を理解することは重要です。 PostgreSQLのデータをバックアップする時には基本的に以下の異なった3つの手
PostgreSQL 編9 - スカラー副問い合わせ、件数指定、OFFSET、LIMIT、HAVING ■スカラー副問い合わせ ・PostgreSQL でも、スカラー副問い合わせがサポートされている。 このスカラー副問い合わせは、広く応用できて非常に便利です。 尚、フィールドなど単一行の結果を戻す必要のある問い合わせを 単一行副問い合わせと呼ぶ。 (単1行副問い合わせ、単一行問い合わせ、単1行問い合わせ) select key, (select key from testm b where key = a.code1) from test2m a ; key | ?column? ----------+---------- abc01 | a001 abc02 | a011 abc03 | abc02 | a011 abc03 | ■インラインビュー ・インラインビューは、次のようにする。
Landscape トップページ | < 前の日 2002-12-19 2002-12-25 次の日 2003-01-10 > Landscape - エンジニアのメモ 2002-12-25 Postgres でテーブルを csv 出力 当サイト内を Google 検索できます * Postgres でテーブルを csv 出力この記事の直リンクURL: Permlink | この記事が属するカテゴリ: [Postgres] テーブルを csv で出力する。psql の機能を使う。 - SQL の結果を出力したいとき\pset format unaligned -- 出力形式を指定 \pset fieldsep ',' -- フィールドのセパレータにカンマ区切りを指定 \o psql_out.csv -- 出力ファイルを指定 ここに SQL を書く もしくは、シェルから psql のオプシ
Select文の結果をテキストファイルへ出力したかったのだが、調べたらできることがわかったので、そのメモ。 PostgreSQL copyというコマンドが使える。 PostgreSQL-7.1-ja : COPY PostgreSQL-8.1-ja : COPY 使用例 以下の例は、PostgreSQL Version 8.1.11 で実験したものです。 テーブルを丸ごとテキストに出力する例 postgres=# copy hoge_table to '/tmp/hoge_tbl_export.csv' CSV; 一時テーブルを利用して、where句を利用した結果を出力する例 BEGIN; CREATE TEMP TABLE a_list_fugas AS SELECT * FROM hoge_table WHERE name LIKE 'fuga%'; COPY a_list_fugas
例↓ create table v (cdata char(4),vdata varchar(4)); SQL_ASCII: insert into v values('ABCD' , '1234'); OK(半角) insert into v values('ABCDE', '1234'); ERROR(char) insert into v values('ABCD' , '12345'); ERROR(varchar) insert into v values('AB' , '12'); OK(全角) insert into v values('ABC', '12'); ERROR(char) insert into v values('AB' , '123'); ERROR(varchar) insert into v values('ABC' , '123'); OK(全角半角混
説明psqlとはPostgreSQLのターミナル型フロントエンドです。 対話的に問い合わせを入力し、PostgreSQLに対して発行して、結果を確認することができます。 また、ファイルから入力を読み込むことも可能です。 それに加え、スクリプトを記述するのを簡単にするためと、様々なタスクを自動化するために、いくつものメタコマンドと各種のシェルに似た機能を備えています。 -a --echo-all読み込んだ全ての行を標準出力に表示します。 これは対話式モードよりもスクリプト処理の際に有用です。 これはECHO変数をallに設定することと同じです。 -A --no-align位置揃え無しの出力モードに切替えます。 (さもなければ、デフォルトの位置揃えされた出力モードになります。) -c command --command commandpsqlに対し、commandという1つのコマンド文字列を実
以前、PythonのPostgreSQL用のドライバがうまくインストール出来ないと記載しましたが、python-develが入って無かっただけっぽいです。 yum install python-devel で、 ① ocpgdb1.0.3 ② psycopg2-2.4 ③ PyGreSQL-4.0 ④ pg8000-1.08 の全てのドライバがinstall可能でした。 上記はPython2.6及び、2.7で確認しましたが、2.7の場合は④のインストールがいじらないとうまくいきませんでした。(詳細はここに記載されています) で、今回の趣旨はPythonからのBulkInsertを試してみようというものです。 driverですが、前回は④を使いましたが、今回は②psycopg2を使ってみました。 事前に、 CREATE TABLE hash ( id text PRIMARY KEY , v
MySQLみたいに簡単にできると思ったらちょっとはまった。 開発環境用の設定。 インストール $ sudo apt-get install postgres インストールするとUbuntuにpostgresというユーザーがつくられるのでパスワードを設定。 postgresユーザーになるとDBに接続できるようになるはず。 $ passwd postgres $ su postgres $ psql このままだとpostgresユーザーにならないと接続できないしapacheから接続できないので設定を変更する。 まずDB接続用のパスワード設定。 ALTER USER postgres encrypted password 'password'; postgresの設定変更。 $ vi /etc/postgresql/8.3/main/pg_hba.conf # TYPE DATABASE USE
Psycopg2 is a mature driver for interacting with PostgreSQL from the Python scripting language. It is written in C and provides a means to perform the full range of SQL operations against PostgreSQL databases. This page is focused on version 2 of the driver, only. Overview Links Official Project Documentation Psycopg2 Project Repository Psycopg2 Wiki Tutorial PostgreSQL Tutorial and PostgreSQL Pyt
There are several Python drivers for PostgreSQL. This is the incomplete feature matrix for them; please help complete it as you see fit. In general, Python users want to use psycopg2 unless they have a strong reason to try another driver, most of which are no longer maintained. Since DBAPI allows drivers to have different semantics, porting applications from one driver to another is non-trivial. S
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く