Binary SQLという考え方

 HandlerSocketというのは、「SQLの解釈って結構時間がかかるから単純なCRUD操作はSQLをバイパスしたら速くなるよね」というものであると理解している。HandlerSocketは複雑な操作は行うことができない、という点がちょっと残念である。
 なぜSQLの解釈に時間がかかるかというとSQLがテキストで書かれているからで、テキストだとパースに時間がかかるからバイナリを使おうという考え方はBinary XMLなどでは既に実現されている。
 解釈後の命令文字列を使い回すための方法としては、既にprepared statementというものがある。prepared statementは実行すべきSQL文をあらかじめサーバ側に登録しておき、SQLを実行したい時には呼び出したいSQL文とplace holderの引数のみを指定するものである。バイナリであればパースは簡単であるし、その後の実行計画までキャッシュしておくことも原理的には可能であるため、性能的には非常に効果が高いはずである。
 prepared statementでは生まれ得ない、SQLをバイナリ形式にする事のメリットについて30秒ぐらい考えてみたが、特に思いつかなかった。唯一、非定形のSQLを実行しないといけない場合にはBinary SQLの方が効率は良くなるであろうが、そもそもそんなシチュエーションが思いつかない。
 特に建設的な何かはなく、このエントリは終わる。