mosql
いわゆるひとつのクエリビルダ
https://github.com/moskytw/mosql
mosql使う用途くらいだったら特に気にすることもないんだろうけど、確かめてみた。
測定コード
import slowfast
title = "mosql vs format"
one = "insert('tech', {'id': 1, 'name': 'Hoge'})"
two = """'INSERT INTO "tech" ("id", "name") VALUES ("{}", "{}")'.format(1, 'Hoge')"""
setup = "from mosql.query import insert"
slowfast.compare(title, one, two, setup)
title = "mosql vs mosql(escape)"
one = "insert('tech', {'id': 1, 'name': 'Hoge'})"
two = "escape(insert('tech', {'id': 1, 'name': 'Hoge'}))"
setup = "from mosql.query import insert;from mosql.mysql import escape"
slowfast.compare(title, one, two, setup)
結果
$ python example.py
===== mosql vs format =====
(slow) 0.659736[sec]
insert('tech', {'id': 1, 'name': 'Hoge'})
(fast) 0.008752[sec]
'INSERT INTO "tech" ("id", "name") VALUES ("{}", "{}")'.format(1, 'Hoge')
75.38 times faster
===== mosql vs mosql(escape) =====
(slow) 0.805398[sec]
escape(insert('tech', {'id': 1, 'name': 'Hoge'}))
(fast) 0.674377[sec]
insert('tech', {'id': 1, 'name': 'Hoge'})
1.19 times faster