[Dd]enzow(ill)? with DB and Python

DBとか資格とかPythonとかの話をつらつらと

PythonのWSGIラインプロファイラを試してみた(wsgi_lineprof)

ひょんなことからISUCONに出ることになったので練習してたら休日が溶けました。ISUCONこわい。

ISUCONはWEBアプリケーションのチューニングコンテストなわけですが、そもそもAPのどこにボトルネックがあるかを見つけないと効果的なチューニングは難しいです。そんな時に使えそうなプロファイラをymyzkさんwsgi_lineprofとして作成されたということをPyCon2017のLTで発表されていましたので試してみました。

続きを読む

Pythonを使ってWindows 上でps的な感じでプロセスの情報を取りたかった

普段業務はWindows上で行っています。Python何かを動かすときはLinux上であることが多いですが、たまにWindowsで、ジョブを動かさないといけないケースもあります。今回、ちょっとWindows上でプロセス一覧を取得しないといけないケースがあったので行った内容をまとめます。

続きを読む

PostgreSQLで全文検索(PGroongaを試してみた:環境構築から簡単なINDEX試すまで)

前回はpg_bigmをつかってPostgreSQLで全文検索を行う方法を試しました。数年前から登場し、PostgreSQLの日本語全文検索ではpg_bigmと同じくらい耳にするPGroongaを試してみます。

PGroonga?

以下はドキュメントからの抜粋です。

PGroongaはPostgreSQLの拡張機能です。PGroongaはGroongaを使った新しいインデックスアクセスメソッドを提供します。 Groongaは組み込み可能な超高速全文検索エンジンです。GroongaはMySQLにも組み込めます。MroongaはGroongaベースのストレージエンジンです。Groongaはスタンドアローンの検索エンジンとしても使えます。 PostgreSQLはアルファベットと数値だけを使った言語の全文検索だけをサポートしています。これは、日本語や中国語などはサポートしていないということです。PGroongaをPostgreSQLにインストールすると全言語対応の超高速全文検索機能を使えるようになります! さらに、PGroongaはJSON内のすべてのテキスト値に対する全文検索もサポートしています。これは他にはない機能です。組み込みのPostgreSQLの機能でもJsQueryでもサポートしていません。

GroongaをPostgreSQLから利用できるようにする拡張のようです。

続きを読む

PostgreSQLで全文検索(pg_bigmを試してみた)

今回はPostgreSQLでpg_bigmを試してみます。

SQL全文検索を考えたとき、とりあえずデータ量が多くなければLIKE検索でできます。

select data from small_table where data like '%りんご%';

%りんご%の指定により、文中のどこかでりんごが含まれるデータを検索することができます。%正規表現でいうところの*+に相当し、0文字以上の何かに相当します。

しかし、この方法ではほとんどのRDBMSではINDEXが使えないためTABLEすべてにアクセスする必要があり、パフォーマンスが出ません。なお、りんご%といった前方一致であればINDEXが使えるケースもあります。

このようにデータのどこかに指定したワードがあるかを探すには全文検索機能が必要になります。

続きを読む

PostgreSQL 9.6をroot権限を使わずにソースからコンパイル

ちょっとPostgreSQL全文検索等を試したかったのですが、そもそも手元の環境に入れてなかったので ついでにまとめてしまいます。

対象環境

今回は以下の環境で実施しました。

続きを読む

Pythonで一番小さいWEBフレームワークbottle.py その4(static_file,erropage)

前回はGETやPOSTについてまとめました。今回はROUTING STATIC FILESを中心にまとめます。

静的?動的?

STATIC FILEは静的ファイルという意味です。逆に動的もあります。どう違うのでしょうか。とてもざっくりいうと下のイメージです。

type memo
静的 同じURLで同じ内容が戻る。固定ページや画像、動画等。URLから割出されるOS上の固定ファイルを戻す
動的 ページの基本的な部分は共通だが、アクセスユーザ等に応じて内容が一部変わる。サーバ等でHTMLを組み立てて戻す
続きを読む