ngx_drizzle+ngx_rds_json: php+libmysqlよりも3ー4倍の速さでsqlをAPI化する

http://nginx.org/pipermail/nginx/2010-June/021075.html

ngx_drizzleはmysqlやsqite3などのrdbエンジンとインタフィースしRDS(Resty DBD Stream)というバイナリプロトコルのデータを生成するnginxモジュール。

RDSをngx_rds_jsonJSONに変換してくれる。

ベンチマークではngx_drizzle+ngx_rds_jsonで128MB/secのスループットを出し、これはphp+libmysqlの3-4倍のパフォーマンスだと主張している。詳細は上のリンクの原文を読んでください。

RESTfulなmysqlのインタフェースをこのよなngixn confで設定できるらしい。なんとなく、その可能性がうかがえる。


location ~ '^/cat/(\d+)' {
set $id $1;
set_form_input $name;
set_quote_sql_str $quoted_name $name;

drizzle_query HEAD GET "select * from cats where id=$id";
drizzle_query DELETE "delete from cats where id=$id";
drizzle_query POST "insert into cats (name) values($quoted_name)";

drizzle_pass my_mysql_backend;
}

RDBの速いRESTful APIが欲しいときは「ngx_drizzle+ngx_rds_json」と頭の引き出しにコミットしておこう。