هل هناك فرق تقني كبير بين أنواع بيانات Varbinary (Max) وأنواع بيانات الصور؟
-
29-09-2019 - |
سؤال
كنت أقرأ على الإنترنت هذه العبارات خادم قاعدة البيانات أنواع البيانات:
VARBINARY(MAX)
- السلاسل الثنائية ذات الطول المتغير يمكن تخزين ما يصل إلى 2^31-1 بايت.IMAGE
- السلاسل الثنائية بطول متغير يصل إلى 2^31-1 (2،147،483،647) بايت.
هل هناك فرق تقني كبير حقًا بين VARBINARY(MAX)
و IMAGE
أنواع البيانات؟
إذا كان هناك فرق: هل يتعين علينا تخصيص كيفية إدراج ADO.NET وتحديث حقل بيانات الصورة في SQL Server؟
المحلول
يقومون بتخزين نفس البيانات: هذا بقدر ما يذهب.
"image
"تم إهماله ولديه مجموعة محدودة من الميزات والعمليات التي تعمل معها. varbinary(max)
يمكن تشغيلها مثل أقصر varbinary
(كما سبق ل text
و varchar(max)
).
لا تستخدم image
لأي مشروع جديد: فقط ابحث هنا عن المشكلات التي يواجهها القوم معها image
و text
أنواع البيانات بسبب الوظائف المحدودة.
نصائح أخرى
أعتقد أنه من الناحية الفنية متشابهة ، لكن من المهم ملاحظة ما يلي وثائق:
ستتم إزالة أنواع بيانات NTEXT والنص والصور في إصدار مستقبلي من خادم MicroSOFTSQL. تجنب استخدام أنواع البيانات هذه في أعمال التطوير الجديدة ، والتخطيط لتعديل التطبيقات التي تستخدمها حاليًا. استخدم Nvarchar (Max) و Varchar (Max) و Varbinary (Max) بدلاً من ذلك.
أنواع البيانات الثابتة والمتغيرة لتخزين أحرف كبيرة غير unicode و Unicode و> بيانات ثنائية. تستخدم بيانات Unicode مجموعة أحرف Unicode UCS-2.
يقومون بتخزين نفس البيانات: هذا بقدر ما يذهب.
تم إهمال "الصورة" ولديه مجموعة محدودة من الميزات والعمليات التي تعمل معها. يمكن تشغيل Varbinary (Max) على مثل Varbinary أقصر (DITTO للنص و Varchar (Max)).
لا تستخدم الصورة لأي مشروع جديد: ما عليك سوى البحث هنا عن المشكلات التي يواجهها القوم مع أنواع البيانات والنصوص بسبب الوظائف المحدودة.
في الواقع، VARBINARY
يمكن تخزين أي بيانات يمكن تحويلها إلى صفيف بايت ، مثل الملفات ، وهذه هي نفس العملية IMAGE
يستخدم نوع البيانات ، لذلك ، بموجب وجهة النظر هذه ، يمكن لكلا النوعين من البيانات تخزين نفس البيانات. ولكن VARBINARY
لديك خاصية الحجم ، بينما IMAGE
يقبل أي حجم حتى حدود نوع البيانات ، لذلك عند استخدام IMAGE
نوع البيانات ، سوف تنفق المزيد من الموارد لتخزين نفس البيانات. في Microsoft® SQL Server®, ، ال IMAGE
تم إهمال نوع البيانات حقًا ، ثم يجب أن تراهن VARBINARY
نوع البيانات.
لكن كن حذرا: Microsoft® SQL Server® CE® (بما في ذلك أحدث إصدار 4.0) لا يزال يستخدم IMAGE
لن يكون نوع البيانات وربما نوع البيانات هذا "يختفي" قريبًا ، لأنه في إصدارات الإصدار المدمجة ، يكون نوع البيانات هذا أفضل من أي تخزين للملفات السريعة الأخرى.
لقد وجدت عن غير قصد فرق واحد بينهما. يمكنك إدخال سلسلة في نوع الصورة ولكن ليس في varbinary. ربما هذا هو السبب في أن MS ينهض نوع الصورة لأنه من غير المنطقي حقًا تعيين صورة بسلسلة.