SQL-SQL中binary 和 varbinary的区别

本文探讨了在数据库中存储图像数据的策略及其对性能的影响。对比了使用binary、varbinary与image字段的区别,并指出使用image字段可能导致的性能瓶颈。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转自http://blog.sina.com.cn/s/blog_6feecb5301018w1a.html

建议不要将图片存入数据库中,这样会加重数据库服务器负担,不如还是用文件系统。binary类型与image的字段用来存放二进制的数据,都可以用来存放图像数据,但不同处在于binary类型可定义存储数据的字节数,与varbinary类似,但前者为定长,就是说无论所存的数据实际多大,都占用这么长的空间。定义为:

binary ]

固定长度的 个字节二进制数据。N 必须从 到 8,000。存储空间大小为 n+4 字节。 

varbinary ]

个字节变长二进制数据。n 必须从 到 8,000。存储空间大小为实际输入数据长度 +4 个字节,而不是 个字节。输入的数据长度可能为 字节。在 SQL-92 中 varbinary 的同义词为 binary varying。

而image的定义为:

可变长度二进制数据介于 与 2^31-1 (2,147,483,647) 字节之间。

它实际是可存储二进制数据的text类型,但要注意一点,若不必要,该字段类型尽量少用!以前见过一段说明,此种类型字段要么为NULL,要么一用不管你存放多少数据,都要用到大概16K左右的空间(可能有误,具体数字记不清了)。那么我在使用时发现若使用了该字段存放学生一寸照片(文件很小),每次查询一个班人(50行)的数据都需要2秒多的时间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值