SQL Server与Access数据库存大数据的比较

jetli123456789 2013-10-21 10:04:20
最近需要用数据库管理上千张甚至更多的图片,在发愁使用SQL Server数据库还是Access数据库,考虑的问题主要有以下几点:
1.用SQL Server和Access存储上千张图片,他们所占存储空间大小比较。
2.用SQL Server和Access存储上千张图片,数据安全性比较。
3.用SQL Server和Access存储上千张图片,在进行数据库查询,删除,插入等操作时的速度比较
请各位数据库大神代为解答,或者推荐能解答这些问题的书籍,谢谢!
...全文
434 25 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
不管什么数据库。大量的图片保存在数据库中都是不明智的选择吧
LongRui888 2013-10-21
  • 打赏
  • 举报
回复
考虑到扩展性,并发性能,对事务的支持,各种功能,监控等,总体上来说,还是sql server好。 因为,毕竟access更适用于单机数据库,也不适合网络方法,当多用户同时操作,很有可能会引起性能问题。
發糞塗牆 2013-10-21
  • 打赏
  • 举报
回复
准确来说,我不保证新版的sqlserver对图片的压缩有没有该井。 第四点,是在不能存路劲的前提下使用的。第五点,没有真正管理过access,不清楚,但是听说的确不是很好。
jetli123456789 2013-10-21
  • 打赏
  • 举报
回复
引用 17 楼 DBA_Huangzj 的回复:
压缩操作最好在存入sqlserver之前做,记得sqlserver对图片(其实是转换成二进制文件存入,也有image类型,不过一般貌似不建议使用)的压缩不够高效。如果2008以后,有一个新特性filestream,官方建议对平均大小大于1M的文件用这种特性来存放。不建议直接存放数据库里面
引用 18 楼 sz_haitao 的回复:
[quote=引用 14 楼 jetli123456789 的回复:] [quote=引用 13 楼 yupeigu 的回复:] [quote=引用 9 楼 jetli123456789 的回复:] [quote=引用 7 楼 yupeigu 的回复:] 从安全性上来说,access是要登录到windows上后,才能访问的,sql server支持windows验证和sql server验证两种,更为灵活。但由于access一开始就是设计为单机版的数据库,并不是网络数据库,在本地访问access数据库。 另外,access对并发操作支持的不好,也就是如果你通过有多个查询、删除、修改、添加,那么可能会有严重的问题。 还有,存储量方面,你是把图片插入到access,还是只是把图片的路径放到access,而图片还是放到文件目录中呢?
是将图片存入到数据库,如果只是存路径的话用Access完全足够了[/quote] 哦,是直接把图片存到数据库里啊,那还是存储在sql server中把,sql server的存储效率比较高,而且还支持压缩,能减小存储空间,提高IO效率。[/quote]
引用 13 楼 yupeigu 的回复:
[quote=引用 9 楼 jetli123456789 的回复:] [quote=引用 7 楼 yupeigu 的回复:] 从安全性上来说,access是要登录到windows上后,才能访问的,sql server支持windows验证和sql server验证两种,更为灵活。但由于access一开始就是设计为单机版的数据库,并不是网络数据库,在本地访问access数据库。 另外,access对并发操作支持的不好,也就是如果你通过有多个查询、删除、修改、添加,那么可能会有严重的问题。 还有,存储量方面,你是把图片插入到access,还是只是把图片的路径放到access,而图片还是放到文件目录中呢?
是将图片存入到数据库,如果只是存路径的话用Access完全足够了[/quote] 哦,是直接把图片存到数据库里啊,那还是存储在sql server中把,sql server的存储效率比较高,而且还支持压缩,能减小存储空间,提高IO效率。[/quote] 哦,SQL Server存储时经过压缩的吗?比如说图片1M,存进去占的存储空间是1M还是小于1M?查询等操作时,SQL Server占的内存是不是比access要小?[/quote] 如果图片是jpg格式,已经是压缩得最厉害的了 数据库的压缩不可能再压了,它对于大文本是可以再压1半左右[/quote] 看了这么多,我总结一下你们所说的,看看对不对: 1.SQL Server存储图片时,不能压缩,或者说压缩效率很低 2.相对于access来说,SQL Server的存储,查询效率都要高很多,所以肯定选择SQL Server 3.SQL Server可以自己设置占用内存大小,查询是将图片数据缓存在内存中的,就是不知道设置的大小对管理,操作有没有速度影响 4.对SQL Server存图,建议转换成二进制大对象,而不用Image对象 5.对于access来说,存储量太大是不是就容易崩溃,我听别人说是到了100M以后,就容易崩溃。 我可能暂时不能选择存储图片所在路径,所以还是会选择存图在数据库里。
haitao 2013-10-21
  • 打赏
  • 举报
回复
引用 14 楼 jetli123456789 的回复:
[quote=引用 13 楼 yupeigu 的回复:] [quote=引用 9 楼 jetli123456789 的回复:] [quote=引用 7 楼 yupeigu 的回复:] 从安全性上来说,access是要登录到windows上后,才能访问的,sql server支持windows验证和sql server验证两种,更为灵活。但由于access一开始就是设计为单机版的数据库,并不是网络数据库,在本地访问access数据库。 另外,access对并发操作支持的不好,也就是如果你通过有多个查询、删除、修改、添加,那么可能会有严重的问题。 还有,存储量方面,你是把图片插入到access,还是只是把图片的路径放到access,而图片还是放到文件目录中呢?
是将图片存入到数据库,如果只是存路径的话用Access完全足够了[/quote] 哦,是直接把图片存到数据库里啊,那还是存储在sql server中把,sql server的存储效率比较高,而且还支持压缩,能减小存储空间,提高IO效率。[/quote]
引用 13 楼 yupeigu 的回复:
[quote=引用 9 楼 jetli123456789 的回复:] [quote=引用 7 楼 yupeigu 的回复:] 从安全性上来说,access是要登录到windows上后,才能访问的,sql server支持windows验证和sql server验证两种,更为灵活。但由于access一开始就是设计为单机版的数据库,并不是网络数据库,在本地访问access数据库。 另外,access对并发操作支持的不好,也就是如果你通过有多个查询、删除、修改、添加,那么可能会有严重的问题。 还有,存储量方面,你是把图片插入到access,还是只是把图片的路径放到access,而图片还是放到文件目录中呢?
是将图片存入到数据库,如果只是存路径的话用Access完全足够了[/quote] 哦,是直接把图片存到数据库里啊,那还是存储在sql server中把,sql server的存储效率比较高,而且还支持压缩,能减小存储空间,提高IO效率。[/quote] 哦,SQL Server存储时经过压缩的吗?比如说图片1M,存进去占的存储空间是1M还是小于1M?查询等操作时,SQL Server占的内存是不是比access要小?[/quote] 如果图片是jpg格式,已经是压缩得最厉害的了 数据库的压缩不可能再压了,它对于大文本是可以再压1半左右
發糞塗牆 2013-10-21
  • 打赏
  • 举报
回复
压缩操作最好在存入sqlserver之前做,记得sqlserver对图片(其实是转换成二进制文件存入,也有image类型,不过一般貌似不建议使用)的压缩不够高效。如果2008以后,有一个新特性filestream,官方建议对平均大小大于1M的文件用这种特性来存放。不建议直接存放数据库里面
LongRui888 2013-10-21
  • 打赏
  • 举报
回复
不过,比较了灵活的是,在sql server中你可以控制最大占用内存,比如里面的参数max server memory设置为100M,那么他缓存的数据,就不会超过100M。
LongRui888 2013-10-21
  • 打赏
  • 举报
回复
引用 14 楼 jetli123456789 的回复:
[quote=引用 13 楼 yupeigu 的回复:] [quote=引用 9 楼 jetli123456789 的回复:] [quote=引用 7 楼 yupeigu 的回复:] 从安全性上来说,access是要登录到windows上后,才能访问的,sql server支持windows验证和sql server验证两种,更为灵活。但由于access一开始就是设计为单机版的数据库,并不是网络数据库,在本地访问access数据库。 另外,access对并发操作支持的不好,也就是如果你通过有多个查询、删除、修改、添加,那么可能会有严重的问题。 还有,存储量方面,你是把图片插入到access,还是只是把图片的路径放到access,而图片还是放到文件目录中呢?
是将图片存入到数据库,如果只是存路径的话用Access完全足够了[/quote] 哦,是直接把图片存到数据库里啊,那还是存储在sql server中把,sql server的存储效率比较高,而且还支持压缩,能减小存储空间,提高IO效率。[/quote]
引用 13 楼 yupeigu 的回复:
[quote=引用 9 楼 jetli123456789 的回复:] [quote=引用 7 楼 yupeigu 的回复:] 从安全性上来说,access是要登录到windows上后,才能访问的,sql server支持windows验证和sql server验证两种,更为灵活。但由于access一开始就是设计为单机版的数据库,并不是网络数据库,在本地访问access数据库。 另外,access对并发操作支持的不好,也就是如果你通过有多个查询、删除、修改、添加,那么可能会有严重的问题。 还有,存储量方面,你是把图片插入到access,还是只是把图片的路径放到access,而图片还是放到文件目录中呢?
是将图片存入到数据库,如果只是存路径的话用Access完全足够了[/quote] 哦,是直接把图片存到数据库里啊,那还是存储在sql server中把,sql server的存储效率比较高,而且还支持压缩,能减小存储空间,提高IO效率。[/quote] 哦,SQL Server存储时经过压缩的吗?比如说图片1M,存进去占的存储空间是1M还是小于1M?查询等操作时,SQL Server占的内存是不是比access要小?[/quote] 对,是把数据压缩后,再存储的。一般的文本型数据,如果是压缩的话,压缩比率可以达到80%,图片的没试过,但应该没有那么高,反正图片内部的重复数据越多,压缩比率越高把。 另外,sql server占用的内存适合你的数据库里数据量的大小有关的,数据量大,那么sql server 可能占的内存就越高,sql server在查询时,会把要查询的数据缓存在内存中。
jetli123456789 2013-10-21
  • 打赏
  • 举报
回复
引用 13 楼 yupeigu 的回复:
[quote=引用 9 楼 jetli123456789 的回复:] [quote=引用 7 楼 yupeigu 的回复:] 从安全性上来说,access是要登录到windows上后,才能访问的,sql server支持windows验证和sql server验证两种,更为灵活。但由于access一开始就是设计为单机版的数据库,并不是网络数据库,在本地访问access数据库。 另外,access对并发操作支持的不好,也就是如果你通过有多个查询、删除、修改、添加,那么可能会有严重的问题。 还有,存储量方面,你是把图片插入到access,还是只是把图片的路径放到access,而图片还是放到文件目录中呢?
是将图片存入到数据库,如果只是存路径的话用Access完全足够了[/quote] 哦,是直接把图片存到数据库里啊,那还是存储在sql server中把,sql server的存储效率比较高,而且还支持压缩,能减小存储空间,提高IO效率。[/quote]
引用 13 楼 yupeigu 的回复:
[quote=引用 9 楼 jetli123456789 的回复:] [quote=引用 7 楼 yupeigu 的回复:] 从安全性上来说,access是要登录到windows上后,才能访问的,sql server支持windows验证和sql server验证两种,更为灵活。但由于access一开始就是设计为单机版的数据库,并不是网络数据库,在本地访问access数据库。 另外,access对并发操作支持的不好,也就是如果你通过有多个查询、删除、修改、添加,那么可能会有严重的问题。 还有,存储量方面,你是把图片插入到access,还是只是把图片的路径放到access,而图片还是放到文件目录中呢?
是将图片存入到数据库,如果只是存路径的话用Access完全足够了[/quote] 哦,是直接把图片存到数据库里啊,那还是存储在sql server中把,sql server的存储效率比较高,而且还支持压缩,能减小存储空间,提高IO效率。[/quote] 哦,SQL Server存储时经过压缩的吗?比如说图片1M,存进去占的存储空间是1M还是小于1M?查询等操作时,SQL Server占的内存是不是比access要小?
LongRui888 2013-10-21
  • 打赏
  • 举报
回复
引用 9 楼 jetli123456789 的回复:
[quote=引用 7 楼 yupeigu 的回复:] 从安全性上来说,access是要登录到windows上后,才能访问的,sql server支持windows验证和sql server验证两种,更为灵活。但由于access一开始就是设计为单机版的数据库,并不是网络数据库,在本地访问access数据库。 另外,access对并发操作支持的不好,也就是如果你通过有多个查询、删除、修改、添加,那么可能会有严重的问题。 还有,存储量方面,你是把图片插入到access,还是只是把图片的路径放到access,而图片还是放到文件目录中呢?
是将图片存入到数据库,如果只是存路径的话用Access完全足够了[/quote] 哦,是直接把图片存到数据库里啊,那还是存储在sql server中把,sql server的存储效率比较高,而且还支持压缩,能减小存储空间,提高IO效率。
發糞塗牆 2013-10-21
  • 打赏
  • 举报
回复
引用 11 楼 jetli123456789 的回复:
[quote=引用 6 楼 DBA_Huangzj 的回复:] 简单来说access只是office里面的一个工具,多数用于桌面程序,但是sqlserver发展到今天,它已经是专业的数据库管理系统。微软花了很大力气在上面,access我觉得是为了向后兼容才保留到今天,不然早就不支持了。access不是不好,只是到达一定程度,比如库超过百G、数据表超过一亿,性能明显就没有sqlserver好,而且由于sqlserver是专业的管理系统,很多方面access都不支持,毕竟微软没必要花同样的力气和资源在两个数据库上,突出一个更有价值。如果仅为了弄个后台管理,access足够了,但是如果希望做大,sqlserver是 不二之选
恩,因为我用C++来操作数据库进行图片管理,查询,删除等,需要存几千张图,如果用Access的话,担心查询,删除等操作的速度很慢,还有存这么多图,access占用的空间特别大,不晓得SQL Server占用存储空间和内存会不会小一点。再则,担心存这么多图的话,access会不会容易崩溃。[/quote]存路径,sqlserver内部空间相对较少,如果存文件本身,那基本上不能减少存储空间,图片1M,存进去也占1M。
jetli123456789 2013-10-21
  • 打赏
  • 举报
回复
引用 6 楼 DBA_Huangzj 的回复:
简单来说access只是office里面的一个工具,多数用于桌面程序,但是sqlserver发展到今天,它已经是专业的数据库管理系统。微软花了很大力气在上面,access我觉得是为了向后兼容才保留到今天,不然早就不支持了。access不是不好,只是到达一定程度,比如库超过百G、数据表超过一亿,性能明显就没有sqlserver好,而且由于sqlserver是专业的管理系统,很多方面access都不支持,毕竟微软没必要花同样的力气和资源在两个数据库上,突出一个更有价值。如果仅为了弄个后台管理,access足够了,但是如果希望做大,sqlserver是 不二之选
恩,因为我用C++来操作数据库进行图片管理,查询,删除等,需要存几千张图,如果用Access的话,担心查询,删除等操作的速度很慢,还有存这么多图,access占用的空间特别大,不晓得SQL Server占用存储空间和内存会不会小一点。再则,担心存这么多图的话,access会不会容易崩溃。
發糞塗牆 2013-10-21
  • 打赏
  • 举报
回复
存文件用路劲是比较好的方法,不过对比来说,sqlserver对磁盘的管理更加有效,特别是高版本的sqlserver
jetli123456789 2013-10-21
  • 打赏
  • 举报
回复
引用 7 楼 yupeigu 的回复:
从安全性上来说,access是要登录到windows上后,才能访问的,sql server支持windows验证和sql server验证两种,更为灵活。但由于access一开始就是设计为单机版的数据库,并不是网络数据库,在本地访问access数据库。 另外,access对并发操作支持的不好,也就是如果你通过有多个查询、删除、修改、添加,那么可能会有严重的问题。 还有,存储量方面,你是把图片插入到access,还是只是把图片的路径放到access,而图片还是放到文件目录中呢?
是将图片存入到数据库,如果只是存路径的话用Access完全足够了
haitao 2013-10-21
  • 打赏
  • 举报
回复
不管用哪个,图片最好还是直接放在文件系统的目录 数据库只记录它的相对路径
LongRui888 2013-10-21
  • 打赏
  • 举报
回复
从安全性上来说,access是要登录到windows上后,才能访问的,sql server支持windows验证和sql server验证两种,更为灵活。但由于access一开始就是设计为单机版的数据库,并不是网络数据库,在本地访问access数据库。 另外,access对并发操作支持的不好,也就是如果你通过有多个查询、删除、修改、添加,那么可能会有严重的问题。 还有,存储量方面,你是把图片插入到access,还是只是把图片的路径放到access,而图片还是放到文件目录中呢?
發糞塗牆 2013-10-21
  • 打赏
  • 举报
回复
简单来说access只是office里面的一个工具,多数用于桌面程序,但是sqlserver发展到今天,它已经是专业的数据库管理系统。微软花了很大力气在上面,access我觉得是为了向后兼容才保留到今天,不然早就不支持了。access不是不好,只是到达一定程度,比如库超过百G、数据表超过一亿,性能明显就没有sqlserver好,而且由于sqlserver是专业的管理系统,很多方面access都不支持,毕竟微软没必要花同样的力气和资源在两个数据库上,突出一个更有价值。如果仅为了弄个后台管理,access足够了,但是如果希望做大,sqlserver是 不二之选
jetli123456789 2013-10-21
  • 打赏
  • 举报
回复
引用 3 楼 DBA_Huangzj 的回复:
经过优化的话,access性能还是可以的,但是毕竟微软有自己的数据库管理系统,所以如果从性能和管理上来说,sqlserver无疑是首选
access数据库在存储与管理大数据时有什么缺点(性能,安全性,管理等)呢?SQL Server相对于access在这方面的优点是什么
Andy__Huang 2013-10-21
  • 打赏
  • 举报
回复
如果是小型系统,数据表不多,数据量不大,可以用Access,因为Access适合小型系统,移值方便。 图片可以考虑到文件方式存储到一个物理路径。 如果表比较多,存储大数据,优先考虑用sql server,运算和安全性能肯定比Access好
發糞塗牆 2013-10-21
  • 打赏
  • 举报
回复
经过优化的话,access性能还是可以的,但是毕竟微软有自己的数据库管理系统,所以如果从性能和管理上来说,sqlserver无疑是首选
加载更多回复(4)

22,302

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧