Home > DB Archive

DB Archive

[PostgreSQL]PostgreSQLチューニング方法まとめサイト[Ubuntu]

昨日、Ubuntu9.04PostgreSQL8.3をチューニングしてみました。
すでにチューニング方法を詳細に載せていてくれるサイトがいくつか有るので、今回はそのサイトの紹介です。

ここまで細かく載せていてくれると、私なんかが言えることはございません。
まま使わせてもらってチューニングしました。

あ、一つだけ。
ubuntuで/proc/sys/kernel/shmmaxへ値を上書きしても再起動時に元の値へ戻ってしまっていました。
ということで↓のように。

# sudo vi /etc/sysctl.conf
##ファイル末尾へ
kernel.shmmax = 設定値

ファイル保存後、

# sysctl -p

としましょう。

[CentOS]CentOS5の「PHP、MySQL、PostgreSQL」のバージョンをYumでアップデートする。

なんかサーバーを弄ってたら、PHPとかMySQLとかPostgresのバージョンを無性に上げたくなってきたからバージョンアップした。全部、自前でbuildなんてやってられんので全てYumで管理します。
CentOSのリポジトリのPHPなんて5.1.6とかPostgresが8.1とか・・・ねぇ?って感じだったのでつい・・・
ということでインストールメモ開始。このブログ、インストールメモ専門になってきたな・・・

  1. まず標準のCentOSのリポジトリからPHP、MySQL、PostgreSQLを除外する.。
    # vi /etc/yum.repos.d/CentOS-Base.repo
    [base] ## [base]の項目に↓を追加
    exclude=postgresql* php* mysql*
    [updates] ## [updates]の項目にも↓を追加
    exclude=postgresql* php* mysql*
    
  2. PHPとMySQLをアップデートする用にまずリポジトリ追加。
    # rpm --import http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka
    # vi /etc/yum.repos.d/utterramblings.repo ## ←のファイル作って以下の内容で保存。
    [utterramblings]
    name=Jason's Utter Ramblings Repo
    baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/
    enabled=1
    gpgcheck=1
    gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka
    
  3. PostgreSQLをアップデートする用にやっぱりまずはリポジトリ追加。
    # wget http://yum.pgsqlrpms.org/reporpms/8.3/pgdg-centos-8.3-5.noarch.rpm
    # rpm -ivh pgdg-centos-8.3-5.noarch.rpm
    
  4. PHPとMySQLとPostgreSQLをアップデート。
    # yum update
    
    • ※ x86_64な環境の人で、既にMySQLをインストールしている人は一度削除してからインストールしなおしてください。(mysql、mysql-devel、mysql-server)
      # yum -y remove mysql mysql-devel mysql-server
      # yum -y install mysql mysql-devel mysql-server
      
    • ※ 既にPostgreSQLをインストール済の人で「古いバージョンの〜〜〜アップグレードする必要があります。」と言われた場合
      1. dataを削除、またはリネーム
        # mv /var/lib/pgsql/data /var/lib/pgsql/data.old
      2. DB初期化
        # /etc/init.d/postgresql initdb
      3. PostgreSQL再起動
        # /etc/init.d/postgresql restart
  5. リポジトリ追加したらyumでXcacheとかPostGISがインストールできるようになってたからインストールした。
    # yum -y install php-xcache postgis

各設定は以下を参考に。Ubuntu用に書いたけどほとんどいっしょなので。

[Ubuntu]Ubuntu8.10でPostGISを使えるようにする。[PostGIS]

  1. PostgreSQLとかPostGISをインストールしてない人はインストールする。
    # apt-get install postgresql postgresql-8.3-postgis

    Postgresの設定は[Ubuntu]Ubuntu8.10へApache、PHP、MySQL、PostgreSQLをインストールする。[LAMP]でも参照して下さい。

  2. PostGIS用に初期化済テンプレートDBを構築する。
    $ su - postgres
    $ createdb templategis
    $ createlang plpgsql templategis
    $ psql -d templategis -f /usr/share/postgresql-8.3-postgis/lwpostgis.sql
    $ psql -d templategis -f /usr/share/postgresql-8.3-postgis/spatial_ref_sys.sql
    
  3. PostGIS用テンプレートDBを利用して、作成したいDBを作る。
    createdb -T templategis newdb

PHPからPostgreSQLをdumpする。

system("/usr/bin/pg_dump -u $db_name < $input_file > $out_file");

$input_fileには、

postgres(ユーザー名)
abdedfg(パスワード)

の2行の形でファイルを作る。

PostgresのDBデータをファイルでバックアップ

ファイルでバックアップ

/usr/local/pgsql/bin/pg_dump -h localhost -U postgres -d DB名 > ファイル名

外部ファイルへテーブルの値をエクスポート

COPY テーブル名 TO ‘/home/postgres/ファイル名’ USING DELIMITERS ‘,’ ;

カレントディレクトリにエクスポート

\COPY テーブル名 TO ‘ファイル名’ USING DELIMITERS ‘,’ ;

外部ファイルからテーブルに値をインポートする

COPY テーブル名 FROM ‘/home/postgres/ファイル名’ USING DELIMITERS ‘,’ ;

ちなみにCSVでエクスポートする場合にカラム名をヘッダーに表示する場合

COPY テーブル名 TO ‘/home/postgres/ファイル名’ HEADER CSV;

これで一行目にカラム名が挿入されてCSVでエクスポートされる。

PostgreSQL Ludia

全文検索インデックスはCREATE INDEX 文を利用して作成。

CREATE INDEX index1 ON table1 USING fulltext(col1);

Ludiaがインデックス対象とできるのはtext型のみなので、 char型などの列に対してインデックスを作成したい場合はキャストする。:

CREATE INDEX index2 ON table1 USING fulltextb((col2::text));

ネタですか??おもわず吹いたwww

DB技術の限界を超える新発想の高速検索技術

HOWS「ISSEI(イッセイ)」

http://itpro.nikkeibp.co.jp/article/COLUMN/20080104/290425/

「合計約110万件のデータを高速に検索できる仕組みをできるだけ安価に作れないか」

処理速度最優先で「VisualBasic」で開発したってどういうことっすか??wwww

「これはひどい」

がよく似合う。

Home > DB Archive

Search
Feeds
Meta

Return to page top