まず、100 万枚の画像と 1,000 本のムービーのディレクトリ ツリーの基本情報 (ID、パス、ファイル名、MIME、ファイルサイズ、md5 など) を格納するメディアテーブルから始めました。主に映画に関連するいくつかの新しい列 (タイトル、説明、ランタイム) を追加する必要があり、タイトルの一致についてクエリを実行する必要があります。タイトルのない 100 万以上の行があるため、「メディア」に追加の列を追加する必要はないと思います。これは、適用されない場所に 100 万以上の空/null 行が表示されるためです。さまざまな情報のシリアル化された値を格納するmedia_meta (id、media_id、meta_key、meta_value) テーブルがあります。タイトルはその 1 つですが、検索のために「タイトル」だけにインデックスを付ける必要があります。別のテーブルmedia_titlesを追加する必要がありますか次のようなクエリの場合、media_id のみを使用し、タイトルにインデックスを付けたタイトルを使用します。
SELECT * FROM media_titles WHERE title LIKE '%title%';
上記のクエリはまだ最適ではありませんが、それでもやらなければならないことです。タイトルの部分文字列を検索します。
表の要約:
media (id, path, filename, filesize, mime, md5, etc...)
media_meta (id, media_id, meta_key, meta_value)
media_titles (media_id, title)