macports で Postgresql9.5 インストール [RDBMS]
気がついたらmacports で Postgresql9.5 alpha2 というのがインストールできるようになってた
ふと思い立ってインストールしてみたが、いつも同じようなところで試行錯誤しているのでメモしておく。
ここらへんを参考にした
https://github.com/codeforamerica/ohana-api/wiki/Installing-PostgreSQL-with-MacPorts-on-OS-X
# Mac Ports でインストール
sudo port install postgresql95-server
# インスタンス作成
sudo mkdir -p /opt/local/var/db/postgresql95/defaultdb
sudo chown postgres:postgres /opt/local/var/db/postgresql95/defaultdb
sudo su postgres -c '/opt/local/lib/postgresql95/bin/initdb -D /opt/local/var/db/postgresql95/defaultdb'
# Authentication METHOD 変えたい場合、
sudo vi /opt/local/var/db/postgresql95/defaultdb/pg_hba.conf
# デーモンの起動、停止、再起動のエイリアス
alias pg95_start='sudo /opt/local/etc/LaunchDaemons/org.macports.postgresql95-server/postgresql95-server.wrapper start'
alias pg95_stop='sudo /opt/local/etc/LaunchDaemons/org.macports.postgresql95-server/postgresql95-server.wrapper stop'
alias pg95_restart='sudo /opt/local/etc/LaunchDaemons/org.macports.postgresql95-server/postgresql95-server.wrapper restart'
/opt/local/bin にパスが通っていると以下のコマンドでログインできる
psql95 -U postgres
上の 95 を 93 とか 94 とか変更すると 9.3 とか 9.4 とかインストールできた
ふと思い立ってインストールしてみたが、いつも同じようなところで試行錯誤しているのでメモしておく。
ここらへんを参考にした
https://github.com/codeforamerica/ohana-api/wiki/Installing-PostgreSQL-with-MacPorts-on-OS-X
# Mac Ports でインストール
sudo port install postgresql95-server
# インスタンス作成
sudo mkdir -p /opt/local/var/db/postgresql95/defaultdb
sudo chown postgres:postgres /opt/local/var/db/postgresql95/defaultdb
sudo su postgres -c '/opt/local/lib/postgresql95/bin/initdb -D /opt/local/var/db/postgresql95/defaultdb'
# Authentication METHOD 変えたい場合、
sudo vi /opt/local/var/db/postgresql95/defaultdb/pg_hba.conf
# デーモンの起動、停止、再起動のエイリアス
alias pg95_start='sudo /opt/local/etc/LaunchDaemons/org.macports.postgresql95-server/postgresql95-server.wrapper start'
alias pg95_stop='sudo /opt/local/etc/LaunchDaemons/org.macports.postgresql95-server/postgresql95-server.wrapper stop'
alias pg95_restart='sudo /opt/local/etc/LaunchDaemons/org.macports.postgresql95-server/postgresql95-server.wrapper restart'
/opt/local/bin にパスが通っていると以下のコマンドでログインできる
psql95 -U postgres
上の 95 を 93 とか 94 とか変更すると 9.3 とか 9.4 とかインストールできた
SQL 文を試す sqlfiddle.com [RDBMS]
どこがどういう理由で費用負担してるのかよくわからないのだが、
http://sqlfiddle.com/
というのがあるということを教えてもらった。
上のメニューからデーターベースの種類を選んで、(デフォルトは MySQL 5.6)
左上のペインで CREATE TABLE 文と INSER 文でデータを作成して
右上のペインで SELECT すると、下に結果が出る。
MySQL, PostgreSQL, SQLite の他に
Oracle 11gR2 と MS SQL Server 2014 が使えるらしい。
ありがたい
http://sqlfiddle.com/
というのがあるということを教えてもらった。
上のメニューからデーターベースの種類を選んで、(デフォルトは MySQL 5.6)
左上のペインで CREATE TABLE 文と INSER 文でデータを作成して
右上のペインで SELECT すると、下に結果が出る。
MySQL, PostgreSQL, SQLite の他に
Oracle 11gR2 と MS SQL Server 2014 が使えるらしい。
ありがたい
PostgreSQL の pg_tgram についての覚え書き [RDBMS]
LIKE 演算子で、文字列が含まれているものを探したいというのは繰り返し出てくる
PostgreSQL にそんなの標準で入ってるんじゃなかったっけ?(良く知らない)ということで調べた
PostgreSQL 9.xにおける日本語全文検索について調べてみた
http://longkey1.net/blog/2013/05/08/about-japanese-textsearch-on-postgresql9/
pg_tgram のことだったみたい
http://www.postgresql.jp/document/9.2/html/pgtrgm.html
http://aoyagikouhei.blog8.fc2.com/blog-entry-255.html
中間一致検索でインデックスを使う
http://postgresql.at.webry.info/200803/article_1.html
PostgreSQL 9.x に pg_trgm を後から追加
http://d.hatena.ne.jp/furyu-tei/20140117/1389954589
RDS で使えるか→使えるっぽい
http://pgsqldeepdive.blogspot.jp/2013/11/rds-for-postgresql.html
http://recipe.kc-cloud.jp/archives/5012
PostgreSQL にそんなの標準で入ってるんじゃなかったっけ?(良く知らない)ということで調べた
PostgreSQL 9.xにおける日本語全文検索について調べてみた
http://longkey1.net/blog/2013/05/08/about-japanese-textsearch-on-postgresql9/
pg_tgram のことだったみたい
http://www.postgresql.jp/document/9.2/html/pgtrgm.html
http://aoyagikouhei.blog8.fc2.com/blog-entry-255.html
中間一致検索でインデックスを使う
http://postgresql.at.webry.info/200803/article_1.html
PostgreSQL 9.x に pg_trgm を後から追加
http://d.hatena.ne.jp/furyu-tei/20140117/1389954589
RDS で使えるか→使えるっぽい
http://pgsqldeepdive.blogspot.jp/2013/11/rds-for-postgresql.html
http://recipe.kc-cloud.jp/archives/5012
MySQL で日付、時刻の足し算 [RDBMS]
こういうのっていつもわかんなくなる。
Google で検索しても、 PHP での日付処理とかはでても MySQL の SQL 文で処理するのはなかなか出てこないなぁ。
http://answers.oreilly.com/topic/165-how-to-add-date-or-time-values-in-mysql/
今回やりたかったのは、「同じ日の 12:00 に設定しなおす」みたいな処理なので
update some_table set foo_date = timestamp(date(foo_date), '12:00');
みたいな感じにしたけど、こういう演算がもっと自由自在にできるようになりたいもんだ。
Google で検索しても、 PHP での日付処理とかはでても MySQL の SQL 文で処理するのはなかなか出てこないなぁ。
http://answers.oreilly.com/topic/165-how-to-add-date-or-time-values-in-mysql/
今回やりたかったのは、「同じ日の 12:00 に設定しなおす」みたいな処理なので
update some_table set foo_date = timestamp(date(foo_date), '12:00');
みたいな感じにしたけど、こういう演算がもっと自由自在にできるようになりたいもんだ。
自分の /etc/my.cnf を記録しておく [RDBMS]
[client]
default-character-set = utf8
[mysqld]
default-storage-engine=InnoDB
default-character-set=utf8
character-set-server=utf8
collation-server=utf8_general_ci
ft_min_word_len=1
[mysqldump]
default-character-set = utf8
[mysql]
default-character-set = utf8
default-character-set = utf8
[mysqld]
default-storage-engine=InnoDB
default-character-set=utf8
character-set-server=utf8
collation-server=utf8_general_ci
ft_min_word_len=1
[mysqldump]
default-character-set = utf8
[mysql]
default-character-set = utf8
PostgreSQL や Firebird で自動採番された主キーの値を INSERT 時に知る [RDBMS]
・SQLite3 で id INTEGER PRIMARY KEY
・MySQLで id AUTO_INCRIMENT PRIMARY KEY
としておくと、cursor.execute() の後の cursor.lastrowid で、id の値が取ってこれる(Python的に)。
http://www.randynetwork.com/blog/46
それは知ってた。
んでもって、PostgreSQL(psycopg2) でも lastrowid って、とってこれるんだけど、それって oid で、主キーの値でないんだよねぇ、と思っていたら、PostgreSQL 8.2 から INSERT文 にRETURNING 句というのを付けると好きな値を取ってこれるらしい。
http://lists.initd.org/pipermail/psycopg/2008-July/006112.html
そして、Firebird でも 2.0 から使えるようになっていて、しかも FAQ。
http://www.firebirdfaq.org/faq243/
ちょっと試してみたところ、 kinterbasdb でも値が取得できる。
うーん、知らんかった。
ちなみに、Firebird 2.0 以降では、トリガーを使わなくてもシーケンス番号を設定することができるようになったので、これと組み合わせればシーケンス番号の追加のためだけのトリガーを作成しなくてもよくなる。
http://nakagami.blog.so-net.ne.jp/2006-04-01
・MySQLで id AUTO_INCRIMENT PRIMARY KEY
としておくと、cursor.execute() の後の cursor.lastrowid で、id の値が取ってこれる(Python的に)。
http://www.randynetwork.com/blog/46
それは知ってた。
んでもって、PostgreSQL(psycopg2) でも lastrowid って、とってこれるんだけど、それって oid で、主キーの値でないんだよねぇ、と思っていたら、PostgreSQL 8.2 から INSERT文 にRETURNING 句というのを付けると好きな値を取ってこれるらしい。
http://lists.initd.org/pipermail/psycopg/2008-July/006112.html
そして、Firebird でも 2.0 から使えるようになっていて、しかも FAQ。
http://www.firebirdfaq.org/faq243/
ちょっと試してみたところ、 kinterbasdb でも値が取得できる。
うーん、知らんかった。
ちなみに、Firebird 2.0 以降では、トリガーを使わなくてもシーケンス番号を設定することができるようになったので、これと組み合わせればシーケンス番号の追加のためだけのトリガーを作成しなくてもよくなる。
http://nakagami.blog.so-net.ne.jp/2006-04-01
Fusion IO アーリーアダプター(というかチャレンジャー?) [RDBMS]
いつもながら、Firebird News 経由
http://www.firebirdnews.org/?p=3381
http://sourceforge.net/mailarchive/message.php?msg_name=C3A0571DD64C48CC9A102817399D1C2D%40Tabulex.local
4 processor Opteron 850/16G Ultra320 15krpm 8 disk RAID の環境から
Quad Core の 2 CPU FusionIO の ioDrive 80G のうち 40 G を使う環境に変えたら
時間のかかるクエリで 8 秒だったのが 4 秒になったよ
・・・ってチャレンジャーだなぁ。
FusionIO
http://kakaku.com/pc/ssd/ma_2410/
ioDrive 80G
http://kakaku.com/item/K0000046111/
http://www.firebirdnews.org/?p=3381
http://sourceforge.net/mailarchive/message.php?msg_name=C3A0571DD64C48CC9A102817399D1C2D%40Tabulex.local
4 processor Opteron 850/16G Ultra320 15krpm 8 disk RAID の環境から
Quad Core の 2 CPU FusionIO の ioDrive 80G のうち 40 G を使う環境に変えたら
時間のかかるクエリで 8 秒だったのが 4 秒になったよ
・・・ってチャレンジャーだなぁ。
FusionIO
http://kakaku.com/pc/ssd/ma_2410/
ioDrive 80G
http://kakaku.com/item/K0000046111/
Firebird と PostgreSQL のどっちがいいの? [RDBMS]
StackOverFlow の質問
http://stackoverflow.com/questions/1331946/what-do-you-guys-think-of-postgres-and-firebird-databases
Windows 2003 .NET Framework 3.5 で Firebird と PostgreSQL でどっちがいい?という質問
バイアスのかかった回答を排除すると
・.NET Framework のドライバなら Firebird のがいい
・PHP とか Python なら PostgreSQL のドライバの方がいい
確かに、PHP の Firebird のドライバはかなりダメダメという話は聞いたことがある。
Python のドライバ(psycopg2)は開発体制がかなり手厚い。
ここまで、サーバーについての明確なこっちのがいいという回答なし。
性能的には、だいたい似たようなものではないかと思う。
Firebird は、バックアップ&レストアを定期的にやらないとデータがどんどんでっかくなっちゃうけど、 PostgreSQL だと(vacuum すれば)そんなことない、ということを言ってる人はいる。
Windows なら Firebird の方が歴史が長いという意見もあるが、現在の PostgreSQL の Windows 版が不安定だという意見は出てない。
StackOverFlow のデータベースは SQLServer だそうだが、
http://www.publickey.jp/blog/09/stackoverflowcom4pc.html
これくらいの規模で Firebird 使ってくれるひといないかな。
http://stackoverflow.com/questions/1331946/what-do-you-guys-think-of-postgres-and-firebird-databases
Windows 2003 .NET Framework 3.5 で Firebird と PostgreSQL でどっちがいい?という質問
バイアスのかかった回答を排除すると
・.NET Framework のドライバなら Firebird のがいい
・PHP とか Python なら PostgreSQL のドライバの方がいい
確かに、PHP の Firebird のドライバはかなりダメダメという話は聞いたことがある。
Python のドライバ(psycopg2)は開発体制がかなり手厚い。
ここまで、サーバーについての明確なこっちのがいいという回答なし。
性能的には、だいたい似たようなものではないかと思う。
Firebird は、バックアップ&レストアを定期的にやらないとデータがどんどんでっかくなっちゃうけど、 PostgreSQL だと(vacuum すれば)そんなことない、ということを言ってる人はいる。
Windows なら Firebird の方が歴史が長いという意見もあるが、現在の PostgreSQL の Windows 版が不安定だという意見は出てない。
StackOverFlow のデータベースは SQLServer だそうだが、
http://www.publickey.jp/blog/09/stackoverflowcom4pc.html
これくらいの規模で Firebird 使ってくれるひといないかな。
Firebird がどれぐらい流行ってるか調べた [RDBMS]
Ubuntu 9.04 で kinterbasdb3.3 をソースからビルド [RDBMS]
http://nakagami.blog.so-net.ne.jp/2009-05-09 のときに、 KInterbasDB 3.2 をパッケージからインストールしてソースを修正したが、 3.3.0 をソースからインストールしている人をたまたま発見したのでメモっておく
http://mapopa.blogspot.com/2009/02/firebird-python-howto-on-ubuntu-wget.html
$ sudo apt-get install python-dev firebird2.1-dev
をすれば kinterbasdb をソースからインストールできる、ということ。
http://mapopa.blogspot.com/2009/02/firebird-python-howto-on-ubuntu-wget.html
$ sudo apt-get install python-dev firebird2.1-dev
をすれば kinterbasdb をソースからインストールできる、ということ。