フレーズテーブルをページ分割すると、結果が返されるまでに非常に長い時間がかかります。
SQLログには、意味をなさないSQLリクエストが多数表示されます。
Phrase Load (7.4ms) SELECT "phrases".* FROM "phrases" WHERE "phrases"."id" IS NULL LIMIT 1
User Load (0.4ms) SELECT "users".* FROM "users" WHERE "users"."id" IS NULL LIMIT 1
これらは大幅に加算されます。null IDに対するクエリを防ぐ方法はありますか?
これは基礎となるモデルです。
class Phrase < ActiveRecord::Base
belongs_to :user
belongs_to :response, :class_name => "Phrase", :foreign_key => "next_id"
end