我必須爲電影開發一個Web應用程序。 現在,在我的數據庫中,我有一張關於人物和電影之間關係的表格,另一張關於演員(也是數字)和電影之間關係的表格。 最後一個也包含有關角色的信息。數據庫速度優化(多個查詢)
我的問題不在於關於標準化的問題,我想知道在速度方面爲每個表執行兩個查詢,還是將它們合併爲一個具有空值的字符在某些元組中的效率更高並做一個單一的查詢?
編輯:
這兩個查詢現在(圖面,讓他的演技和職業):
$query1 = '
SELECT RelationFigureCardType.department, RelationFigureCardType.job, Movie.card_type_id, Movie.id, Movie.original_name, Movie.release_date, Movie.cover, Movie.cover_ext
FROM relation_figure_cards AS RelationFigureCard
RIGHT JOIN relation_figure_card_types AS RelationFigureCardType ON
(RelationFigureCard.relation_figure_card_type_id = RelationFigureCardType.id)
RIGHT JOIN cards AS Movie ON
(RelationFigureCard.card_id = Movie.id)
WHERE
RelationFigureCard.figure_card_id = '.$figureId.'
AND RelationFigureCard.last_card_version = 1
ORDER BY Movie.card_type_id, RelationFigureCardType.priority, Movie.release_date
;
';
$query2 = '
SELECT RelationActorCard.is_main, RelationActorCard.is_guest, Movie.card_type_id, Movie.id, Movie.original_name, Movie.release_date, Movie.cover, Movie.cover_ext, Character.id, Character.original_name, Character.cover, Character.cover_ext
FROM relation_actor_cards AS RelationActorCard
RIGHT JOIN cards AS `Character` ON
(RelationActorCard.character_card_id = Character.id)
RIGHT JOIN cards AS Movie ON
(RelationActorCard.card_id = Movie.id)
WHERE
RelationActorCard.figure_card_id = '.$figureId.'
AND RelationActorCard.last_card_version = 1
ORDER BY Movie.card_type_id, Movie.release_date
;
';
我懷疑你最後一句話中有點諷刺:)但你是對的。 這只是我現在沒有足夠的數據來做到這一點。 –
@Sébastien - 我記得有一段時間我不知道基準是什麼,所以爲什麼不解釋它?這裏沒有諷刺意味...... – Lumi