以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 关于二进制列的优劣,还清请版主给讲讲吧 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=57258) |
-- 作者:bahamute -- 发布时间:2014/9/22 9:15:00 -- 关于二进制列的优劣,还清请版主给讲讲吧 原来没接触过,这种数据类型有哪些优点,缺点据说数据库会很大,而且会影响速度,具体怎样,想听听专家的意见,免得道听途说受误导。 |
-- 作者:rjh4078 -- 发布时间:2014/9/22 9:20:00 -- 帮助里关于二级制列的说明有点笼统啊 我有个疑问 一列可以插入多个文件吗? |
-- 作者:有点甜 -- 发布时间:2014/9/22 9:29:00 -- 以下是引用rjh4078在2014-9-22 9:20:00的发言:
帮助里关于二级制列的说明有点笼统啊 我有个疑问 一列可以插入多个文件吗?
不可以。 |
-- 作者:bahamute -- 发布时间:2014/9/22 9:30:00 -- 我有一个合同管理系统,影印件都是pdf格式,大小20M左右,如果改为用二进制,是否可行(注:局域网)。 |
-- 作者:不倒的翁 -- 发布时间:2014/9/22 9:32:00 -- 以下是引用bahamute在2014-9-22 9:30:00的发言: 20mb的文件数量多的话还是放FTP或局域网下载的好。我有一个合同管理系统,影印件都是pdf格式,大小20M左右,如果改为用二进制,是否可行(注:局域网)。 |
-- 作者:有点甜 -- 发布时间:2014/9/22 9:32:00 -- 优势是,文件可以跟着数据库走,迁移数据的时候,直接拷贝数据库即可;同时,这样做相比存路径数据出错几率减少
劣势是,数据库文件变大,如果是频繁存储的话,数据库压力也大 |
-- 作者:狐狸爸爸 -- 发布时间:2014/9/22 9:38:00 -- 例如你有一个2M的图片。
如果用内置的ftp管理: 1、会自动检查之前是否显示过这个图片,如果显示过,会比较本地的图片和服务器的图片,如果服务器的图片和本地一样,则直接显示本地的图片,无需重新下载。这就是本地缓存。 2、如果窗口的图片管理器或PictureBox绑定到这个图片列,在显示这个图片的过程,你可以进行其他操作,这就是异步显示。 3、你甚至可以中断显示切换到其他行,下次再回到这一行,会从上次中断的位置重新下载,而不是全部重新下载,这就是断点续传。 4、一个单元格可以插入多个文件
如果使用二进制列: 1、你通过SQLLoadImage或SQLLoadFile提取这个文件的时候,没有办法本地缓存,必须每次都从数据库中完整提取这个文件。 2、在提取过程中,你也没有办法进行其他操作,也没办法中断提取切换到其他行。 3、也不能一个单元格插入多个文件。 4、但是你不用搭建FTP,保密性也更好。
本地缓存可以自己编码实现,设计思路:数据表增加一列,记录文件的crc值,提取文件前,计算本地文件的crc值,和数据库的比较,如果相同,直接使用本地的文件,否则重新提取。
所以在网速比较快,文件小巧精干的时候,用二进制列是可以的,多数时候,还是用FTP更合适。
[此贴子已经被作者于2014-9-22 9:47:44编辑过]
|
-- 作者:rjh4078 -- 发布时间:2014/9/22 9:50:00 -- 个人觉得二进制的比较好 数据迁移方便 保密性好 在本地应用速度影响不是非常大;另外问下老大 crc值如何获取? |
-- 作者:狐狸爸爸 -- 发布时间:2014/9/22 9:54:00 -- 当然,未来看情况,说不定也会给二进制列加上本地缓存,异步提取的功能。 |
-- 作者:rjh4078 -- 发布时间:2014/9/22 9:54:00 -- 刚刚测试了下远程服务器,1M以内的文件基本上瞬间完成上传,一个5M的文件用了大约7秒,如果能有个进度条就好了 |