私は将来的にウェブサイトに掲載する必要があるコンテンツがたくさんあります。時間が来たときにそれを公開する最も効率的な方法は何ですか?ウェブサイト上でコンテンツをスケジュールする最も効率的な方法
現在の実装は、2つのdatetime列:online_at
とoffline_at
です。 online_at
とoffline_at
列の索引を
SELECT *
FROM contents
WHERE online_at > current_timestamp
AND (offline_at IS NULL OR
offline_at < current_timestamp);
:
コンテンツを取得するためのSQLクエリは次のようになります。それはうまく動作し、明白なパフォーマンスのペナルティはありませんが、私はまだこれについて行くより効率的な方法があるかどうか疑問に思っています。索引を1つのより単純な列にする方法はありますか(高価な日時ではありません)。
online_atとoffline_atの列 –
は、質問に記載されているようにdatetime列です。 online_atには、コンテンツがオンラインに表示される日時が含まれ、offline_atにはコンテンツが再び消える日時が含まれます。 offline_atはNULLでもかまいません。この場合、コンテンツは決して消えません。 –
実行計画はどのように見えますか? –