ฉันต้องการจัดเก็บไฟล์ไบนารีไว้ในฐานข้อมูล SQL Server ประเภทข้อมูลใดที่ดีกว่าจาก Varbinary และ Image
ฉันต้องการจัดเก็บไฟล์ไบนารีไว้ในฐานข้อมูล SQL Server ประเภทข้อมูลใดที่ดีกว่าจาก Varbinary และ Image
คำตอบ:
เนื่องจากรูปภาพเลิกใช้งานแล้วคุณควรใช้ varbinary
ต่อMicrosoft (ขอบคุณสำหรับลิงค์ @Christopher)
ชนิดข้อมูล ntext ข้อความและรูปภาพจะถูกลบออกใน Microsoft SQL Server เวอร์ชันอนาคต หลีกเลี่ยงการใช้ประเภทข้อมูลเหล่านี้ในงานพัฒนาใหม่และวางแผนที่จะแก้ไขแอปพลิเคชันที่ใช้อยู่ในปัจจุบัน ใช้ nvarchar (สูงสุด), varchar (สูงสุด) และ varbinary (สูงสุด) แทน
ประเภทข้อมูลคงที่และความยาวผันแปรสำหรับการจัดเก็บอักขระที่ไม่ใช่ Unicode และ Unicode ขนาดใหญ่และข้อมูลไบนารี ข้อมูล Unicode ใช้ชุดอักขระ UNICODE UCS-2
varbinary(max) เป็นหนทางที่จะไป (แนะนำใน SQL Server 2005)
นอกจากนี้ยังมีสิ่งที่ค่อนข้างน่าสนใจFileStreamซึ่งเปิดตัวใน SQL Server 2008
FileStreamเป็นเพียงพฤติกรรมการจัดเก็บ Filestream ถูกนำไปใช้โดยใช้varbinary(max)และทำการเปลี่ยนแปลงอินสแตนซ์เซิร์ฟเวอร์ sql ของคุณ
https://docs.microsoft.com/en-us/sql/t-sql/data-types/ntext-text-and-image-transact-sql
ภาพ
ข้อมูลไบนารีความยาวตัวแปรตั้งแต่ 0 ถึง 2 ^ 31-1 (2,147,483,647) ไบต์ ยังคงรองรับการใช้ประเภทข้อมูลรูปภาพ แต่โปรดระวัง:
https://docs.microsoft.com/en-us/sql/t-sql/data-types/binary-and-varbinary-transact-sql
varbinary [(n | สูงสุด)]
ข้อมูลไบนารีความยาวตัวแปร n สามารถมีค่าตั้งแต่ 1 ถึง 8,000 สูงสุดระบุว่าขนาดพื้นที่จัดเก็บสูงสุดคือ 2 ^ 31-1 ไบต์ ขนาดพื้นที่จัดเก็บคือความยาวจริงของข้อมูลที่ป้อน + 2 ไบต์ ข้อมูลที่ป้อนอาจมีความยาว 0 ไบต์ คำพ้องความหมาย ANSI SQL สำหรับ varbinary นั้นแตกต่างกันแบบไบนารี
ดังนั้นทั้งสองจึงมีขนาดเท่ากัน (2GB) แต่ระวัง:
แม้ว่าจะยังไม่ได้ระบุจุดสิ้นสุดของประเภทข้อมูล "รูปภาพ" แต่คุณควรใช้การพิสูจน์ "ในอนาคต" ที่เทียบเท่า
แต่คุณต้องถามตัวเองว่าทำไมต้องเก็บ BLOBS ในคอลัมน์?