Если вы храните их все в одном столбце, вы не сможете получить выигрыши в производительности от индексов. Вы также нарушите кардинальное правило проектирования базы данных, которое имеет свои последствия (в каждом столбце должен храниться только один фрагмент данных).
Я бы, вероятно, использовал структуру, подобную этой:
CREATE TABLE Image_EXIF (
image_id INT,
exif_tag_id INT,
exif_value VARCHAR(100), -- I don't know what an appropriate size would really be
CONSTRAINT PK_Image_EXIF PRIMARY KEY CLUSTERED (image_id, exif_tag_id),
CONSTRAINT FK_Image_EXIF_image_id FOREIGN KEY image_id REFERENCES Images (image_id),
CONSTRAINT FK_Image_EXIF_exif_tag_id FOREIGN KEY exif_tag_id REFERENCES EXIF_Tags (exif_tag_id)
)
Таблица EXIF_Tags будет содержать все допустимые теги, а таблица Images будет содержать изображения. Затем вы можете иметь индексы для столбца exif_tag_id
и, возможно, столбец exif_value
для быстрого поиска.