Каков наилучший способ хранения текстовых файлов в базе данных Sql Server для веб-приложения asp.net mvc?
-
19-09-2019 - |
Вопрос
Я делаю небольшое приложение asp.net mvc.в котором я должен вычислить данные из нескольких файлов CSV (от 5 до 10 файлов).
Приложение должно обеспечивать действия по загрузке и скачиванию для этих файлов.
Часть, в которой у меня нет опыта, — это база данных.Какой тип столбца мне следует использовать?текст, изображение, двоичный файл?размер файла будет от 80 до 500 КБ.
Решение
Типы TEXT
, NTEXT
и IMAGE
устарели – не используйте их для новых разработок.Они будут навсегда удалены из будущей версии SQL Server.
Для SQL Server 2005 и более поздних версий используйте VARCHAR(MAX) / NVARCHAR(MAX)
если вы имеете дело с чистыми текстовыми файлами (например, исходным кодом или файлами CSV) или VARBINARY(MAX)
если вы имеете дело с двоичными файлами.
Они позволяют хранить до 2 ГБ памяти для каждого отдельного файла, и вы можете использовать для них все обычные строковые функции T-SQL для управления ими (то есть поля (N)VARCHAR(MAX)).
Если вы используете SQL Server 2008, есть еще дополнительная опция — FILESTREAM
атрибут включен VARBINARY(MAX)
столбцы.Это позволяет хранить файлы в файловой системе компьютера SQL Server (вместо таблиц базы данных), сохраняя при этом целостность транзакций и данных.
FILESTREAM рекомендуется для файлов, размер которых обычно превышает 1 МБ, или если вам когда-либо понадобится более 2 ГБ (поскольку вы не можете хранить более 2 ГБ в обычном VARBINARY(MAX)
столбец).
Марк