太り過ぎたのでランニング始めたら疲労骨折しました。
こんにちは12grid岡本です。
drupal初心者がハマった。の第2段です。
Taxonomyページが超遅い
タクソノミー を page–taxonomy.tpl.php で拾い一覧画面として利用していたのですが、記事が数百を超えたあたりからレスポンスが10秒以上かかる。
タクソノミー自体もまだ1000未満。 Holy shit!
page–taxonomy.tpl.php に来るまで10秒以上かかっているのでコアのどこかで処理がループでもしてるのか…
ざっとコードを潜ってみるもあたりがつかず(無謀)
コミュニティサイトでそれっぽい事例がいくつかありましたが解消にはつながらず。
https://www.drupal.org/node/131189
https://www.drupal.org/node/163448
結論としてはpage–taxonomy.tpl.phpを利用することを諦め、Basicのnodeページを別途用意してリダイレクトさせ、仮想page–taxonomy.tpl.php とすることで回避。
そもそもなんでnode?と言われそうですが(言われましたが)、基本的にはViewsでいいと思います。
今回の場合、既にCustomモジュールの共通処理をViewsの代替で利用していたので、いまさらViewsで作るのは都合が悪かっただけです。Viewsで複雑なSQL書いたり、特殊なページャ作るの難しいんですよね。
どなたかマニアックな処理中心の実践向けDrupal書籍出して頂けませんか。
※遅延処理を特定する必要がある場合は、xhprofを導入すると良いかと思います。
Viewsのリレーションがぶっ壊れた
まーたTaxonomyか!Son of a bitch!!
気づいたら壊れてました。Viewsには手を加えず数か月。
となると何かモジュールいじって関連付けがはがされた可能性が大ですが、心当たりがない。
同一モジュール同一設定の別環境では発生せず。リレーションを張りなおすこともできず。
ViewsやめてCustomモジュールでSQL書きました。
まとめ
なんら解決策を見いだせぬままフィニッシュです。
直すほどにスクラッチに寄っていく。でも「がわはDrupalです」。うーん。
関連記事
drupal7でハマった ver.1