社長BLOG
OpenPNE3.9:Pure Doctrineをやめようと思う
- 2012-06-08 (金)
- 社長BLOG
自分の知る限り、OpenPNE3.8までは基本的にデータベースに依存したSQLを一行も書いていない。
DQLのみをつかった、Pure Doctrineの状態だった。
これはデータベースをSQLiteにスイッチしたり、
Windows SQLAzureに対応したりするにあたってはとてもいいのだが、
問題も多くあある。
パフォーマンス問題
簡単なSQLは問題ないが、複雑な連結が発生する場合、カスタムで最適なSQL分を作ったほうが速度が向上する。
スマートフォンAPIは、今後アクセスシェアが高くなっていくので、この部分からピンポイントでDoctrine外しをしていき、
パフォーマンス向上を図りたい。
不具合問題
おそらくDoctrine起因ではないか?と思われる不具合の追跡がやりにくいというのも、問題に上がってきた。
何かよくわからないけど複雑なクエリを投げたときに、Doctrineの中で落ちてるんだよね、、というとき、
暫定の迂回手段として、Doctrineを迂回したSQLを発行できたほうが解決が早くなる。
Doctrine自体のDBサポートが足りない
OpenPNEで使っているDoctrine自体のバージョンが古く、時代遅れになりつつある。
以前OpenPNEをWindows Azure対応をした時に問題が出た。
最新のSQL Serverに対応したDoctrineのドライバが無かったため、このドライバをOpenPNEチーム側が新たにつくることになった。
ドライバ周りで楽をしたいから、ライブラリの作法に従っているのだが、楽ができないならある程度は自前で書いていくスタイルでもいいんじゃないか。
まだ検討中なのでどのレベルまで、Doctrine依存を下げようかは、全くゼロから検討している。
いまのところ、すくなくともスマートフォンAPI関連のDB READについては、Doctrineを外しても問題ないと考えている。