-- 测试一个jpg文件,大小为147191字节create table # (img image, bin varbinary(max))insert #(img) select * from OPENROWSET(BULK N'X:\...\xxx.jpg', SINGLE_BLOB) as t update # set bin = BulkColumn from OPENROWSET(BULK N'X:\...\xxx.jpg', SINGLE_BLOB) as tselect imgLen=datalength(img), img, binLen=datalength(bin), bin from #/* imgLen img binLen bin ----------- --------------- -------------------- --------------- 147191 0xFFD8FFE000... 147191 0xFFD8FFE000... */-- 测试结果:用image或varbinary(max)类型存储都不会导致空间膨胀,大不了就是每张图片多16字节的指针drop table #
update # set bin = BulkColumn from OPENROWSET(BULK N'X:\...\xxx.jpg', SINGLE_BLOB) as tselect imgLen=datalength(img), img, binLen=datalength(bin), bin from #/*
imgLen img binLen bin
----------- --------------- -------------------- ---------------
147191 0xFFD8FFE000... 147191 0xFFD8FFE000...
*/-- 测试结果:用image或varbinary(max)类型存储都不会导致空间膨胀,大不了就是每张图片多16字节的指针drop table #
是原始图片格式是jpg或者tif的,在存储到数据库中数据量增大了,我理解都是二进制数据顶多增加一些索引开销,怎么会是原来的几倍呢?