phpとmysqlでニュースサイト用の高速なテーブル構造を作りたいです。私のデータベース構造は、ID、タイトル、コンテンツ、cat_ids (; カテゴリの区切り ID - ;5;10;15;20;)、active、publish_date です。
このテーブルからニュースを選択する高速クエリを作成したいと考えています。そんな感じ:
SELECT id
FROM news
WHERE cat_ids LIKE '%;15;%'
AND active = 1
AND publish_date < NOW()
ORDER by publish_date DESC
LIMIT 0, 10
しかし、テーブルが 2 ~ 3GB の場合、クエリは非常に遅くなります。構造を作成し、選択を高速化するためのアイデアが必要です。