在数据库中保存 base64 字符串是一个好习惯吗?

2024-04-14

我正在开发一个 Android 应用程序,用户可以将图像发送到我的网络服务。

目前,在我的 WebService 上,我得到一个 Base64 字符串并将其保存在数据库的表中。

我的问题:这是一个好的做法吗?因为据我所知 Base64 字符串是一个重字符串。我关心的是数据库性能,例如当该表大于 10000...100000 条记录时。
或者我应该避免这种行为?
例如:我可以恢复图像并仅将 URL 保存在我的数据库中,而不是将 Base64 字符串存储在数据库中。

PS:数据库为Sql Server


感谢大家的帮助


回答你的问题,我认为这不是一个好的做法。

这很大程度上取决于您将如何使用可能加载的这些图像。然后,记住(Base64 编码使文件大小比原始二进制表示大大约 33%)。 最好的方法是写入图像,然后将其位置保存在数据库中。

查看这个帖子 https://stackoverflow.com/questions/9722603/storing-image-in-database-directly-or-as-base64-data因为它可能有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在数据库中保存 base64 字符串是一个好习惯吗? 的相关文章

  • 根据聚合创建大小均匀的组

    可能是一个新手问题 但我希望根据数据库总大小将我们的服务器库存分成几个大小均匀的组 并且很难弄清楚如何对它们进行分组 我认为 NTILE 可能会起作用 但我就是无法将注意力集中在平均分配组上 我下面的示例只是随机订购服务器 我希望结果是大小
  • 收到警告:空值被聚合或其他 SET 操作消除

    我有这个架构 create table t id int d date insert into t id d values 1 getdate 2 NULL 做的时候 declare mindate date select mindate
  • Python 3.7 Windows 不支持 dbm.gnu 吗?

    做的时候 import dbm gnu 在适用于 Windows 的标准 Python 3 7 6 64 上 我得到 文件 C Python37 lib dbm gnu py 第 3 行 位于从 gdbm 导入 ModuleNotFound
  • 尝试通过 knex 连接到 Mssql 服务器

    我正在尝试使用 knex 连接到远程数据库 但收到此错误 乏味已弃用默认值options encrypt将会改变自false to true 请通过false如果您想保留当前行为 请明确地表示 在node modules mssql lib
  • 如何查询最近7天的总计?

    我正在使用 SQL Server 2008 我想编写一个查询来提供给定天数的总活动量 具体来说 我想统计过去 7 天每天的总票数 我的桌子看起来像这样 VoteID VoteDate Vote BikeID 1 2012 01 01 08
  • SqlCommand返回值参数

    也许查看此代码的其他人能够告诉我为什么 returnID 始终为 0 我正在尝试从插入的记录中检索新的 ID public int AddToInventory int PartID int QtyOnHand int SpokenFor
  • 在 Microsoft Sql Server 2008R2 及更高版本上隐藏登录数据库 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 请任何人协助隐藏 sql server 2008R2 或更高版本上的可用数据库 我有一个新的登录用户 已映射到特定数据库 使用特定登录用户登录时 我可
  • 私人消息数据库设计

    我正在创建一个简单的私人消息系统 但我不确定哪种数据库设计更好 第一个设计是一个消息表 以及一个消息评论表 Message id recipientId senderId title body created at MessageComme
  • 使用不存在和联接的 SQL 查询到 LINQ 语法

    我的 SQL 查询如下所示 在 SQL 中运行良好 我需要将其转换为 LINQ 语法 SQL SELECT Key Id FROM LocalizationKeys AS lk WHERE NOT EXISTS SELECT 1 FROM
  • 数据库函数 VS Case 语句

    昨天我们遇到了一个场景 必须获取 a 的类型db field在此基础上我们必须编写该字段的描述 喜欢 Select Case DB Type When I Then Intermediate When P Then Pending Else
  • 数据库、表和列命名约定? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 每当我设计数据库时 我总是想知道是否有命名数据库中项目的最佳方法 我经常问自己以下问题 表名应该是复数吗 列名应该是单数吗 我应该为表或列添加前
  • 为列名创建动态选择获取值 - 在 SQL Server 中

    请帮助我创建一个选择 SQL 语句 其中的结果列名称是从原始表中的列值获取的 表名是Device Part 用户可以输入很多DeviceCode其中有许多动态PartTypeName PartTypeName 值为PartInfo 这可能有
  • 如何从 SQL Server 的表中获取列名?

    我想查询一个表的所有列的名称 我发现如何做到这一点 Oracle https stackoverflow com q 452464 419956 MySQL https stackoverflow com q 193780 419956 P
  • 如何返回以列名作为第一行的 T-SQL 查询

    我正在编写一个 SSIS 包来将数据从 SQL Server 2012 数据库输出到 CSV为客户归档 要求是第一行是列名称 下面是我为数据流任务中的源编写的查询 问题是 它总是将列名返回为最后一行 而不是第一行 为什么 我该如何实现这一目
  • SQL Server 将 SP_EXECUTESQL 识别为对象而不是过程名称

    我在用DBContext Database SqlQuery
  • 带附件的数据库电子邮件(excel 文件/pdf 文件)?

    我必须从数据库向我的邮件 ID 发送一封带有附件的邮件 EXEC msdb dbo sp send dbmail profile name Adventure Works Administrator recipients email pro
  • 使用 SqlBulkCopy 时提供流作为二进制列的数据源

    如果需要读取数据fromSqlServer 采用流式传输方式 有一些功能可以实现这一点 比如使用SqlDataReader with CommandBehavior SequentialAccess 特别是当需要访问二进制列数据时 有Get
  • 创建用于插入、修改和删除的数据库触发器的正确​​语法是什么

    我有一个看起来像是 SQL Server 中数据库触发器的基本场景 但我遇到了一个问题 我有桌子Users 身份证 姓名 电话等 我有桌子用户历史记录 id user id 操作 字段 时间戳 我想要一个数据库触发器 可以随时插入 更新或删
  • 需要帮助在 MS Access 中实施完全外部联接

    我无法让查询在 Access 中正常工作 我需要 dbo cardpurchases 和 dbo vendors 上的完整外部联接 以便所有所有供应商都将出现在查询中 无论是否在该供应商处进行购买 但 Access 不支持完全外部联接 我还
  • SQL Server 数据库中的表具有互斥外键的最佳实践

    在这里 我正在寻找针对以下问题的优缺点的最佳解决方案 Entity1 E1 pk 与其他不同的列 Entity2 E2 pk 与其他不同的列 Entity3 E3 pk 与其他不同的列 我需要创建之间的关系Entity1 and Entit

随机推荐

  • 严重:Web 应用程序 [/restapp] 中的 Servlet [Jersey Web Application] 引发了 load() 异常

    这是我的 REST API 项目 我不知道这个错误是什么 我正在尝试从两天开始解决这个错误 现在我已经筋疲力尽了 有人可以帮助我吗 网页正在加载 但控制台中显示此错误 SEVERE Servlet Jersey Web Applicatio
  • Bazaar 上的 SSH 权限被拒绝

    我是芭莎的新手 我正在尝试设置我的 SSH 密钥 但我总是收到 没有权限 以下是我所做的事情 打开 PuTTYgen 点击 生成 围绕鼠标指针移动 添加密码 密码 点击 保存公钥 保存公钥 点击 保存私钥 保存私钥 Private Key
  • 将案例类转换为另一个递归结构的相同案例类

    我正在尝试使用 Shapeless 来转换案例类 如下所示 case class A int Int str String case class B a A str String case class AnotherA int Int st
  • ffmpeg流rc缓冲区下溢

    目前我正在使用开源工具 ffmpeg ffserver 建立一个屏幕共享平台 分享之初一切都很好 大约 1 1 2 分钟后 我在输出中得到以下异常 flv 0x3a47aa0 rc buffer underflow flv 0x3a47aa
  • 自定义模块未显示在应用程序列表中

    我正在尝试将模块从 odoo 8 安装到 odoo 9 我刚刚将整个文件夹复制到addonsodoo 9 中的文件夹并希望我能以某种方式installodoo 9 中的模块 但它没有显示在要安装的应用程序列表中 odoo 的结构是否有任何变
  • 如何在 swi-prolog 的 prolog 文件中运行 prolog 查询?

    如果我有一个定义规则的 prolog 文件 并在 Windows 中的 prolog 终端中打开它 它会加载事实 然而 然后它显示 提示我手动输入一些内容 如何将代码添加到文件中 以便它实际上会评估这些特定的语句 就像我输入它们一样 像这样
  • 两种表结构的区别

    我对这两种结构很困惑 这两个表各有什么优缺点 哪一个更好 为什么 TABLE1 反模式 在常见情况下 第二个表是反模式在数据库设计的背景下 而且 更重要的是 它有特定的名称 实体 属性 值 EAV 在某些情况下 使用这种设计是合理的 但这种
  • css显示表格单元格需要百分比宽度

    我已经处于需要对 div 元素使用 display table cell 命令的位置 但是我发现只有在宽度上添加百分比时 单元格 才能正常工作 在这个小提琴中http jsfiddle net NvTdw http jsfiddle net
  • 为什么变量在重写时的行为与方法不同? [复制]

    这个问题在这里已经有答案了 一般来说 重写是在子类中重新定义成员含义的概念 为什么在java中重写时变量的行为不像方法 例如 class Base int a 10 void display System out println Insid
  • 从 iOS 应用程序在 Facebook 页面上发帖未显示在页面上?

    我正在 Facebook 页面上发布图片和虚拟文本 页面 ID 为 848190045198980 我正在使用我的 Facebook 凭据登录 而且我对特定页面具有管理员角色 所以我只是从 Facebook 获得基本权限 以下是请求和响应
  • d3.js 仅加载部分数据/同步数据

    我有很多数据 我将它们绘制为堆叠条形图 我的测试数据大约有 500k JSON 对象 50k 行 有 10 个堆叠段 我的问题是我不知道如何仅加载部分数据 它显示在浏览器中 因此宽度约为 1200 到 1920 像素 我正在使用比例来计算线
  • 随机 com.android.volley.NoConnection 错误,java.io.InterruptedIOException,statuscode=0

    我有一个本机 Android 应用程序 使用 volley 框架从PHP服务器端脚本 它在大多数情况下都运行良好 但我有 20 的失败率 错误说 com android volley NoConnection java io Interru
  • 请澄清:带有 CSRF 的 Jenkins REST API 需要 user:PASSWORD 的碎屑,但不需要 user:API_TOKEN 的碎屑?

    我发现与启用 CSRF 保护 https wiki jenkins io display JENKINS Remote access API RemoteaccessAPI CSRFProtection 我可以发出带有 crumbs hea
  • Java复制数组部分[重复]

    这个问题在这里已经有答案了 有没有一种方法可以复制数组 不是数组列表 的一部分并从中创建一个新数组 Example 1 2 3 4 5 然后您从中创建一个新数组 1 2 3 有没有任何一行 方法可以做到这一点 查看方法Arrays copy
  • Django modelformset_factory删除can_delete标记的对象

    您好 我有一个问题 我已经制作了 modelformset factory 并且在选项中我选择了 can delete True 现在我不知道如何将标记的对象删除为 DELETE True 来从数据库中删除它们 我试图通过某些方式做到这一点
  • ReSharper intellisense 不显示文档

    知道为什么我没有收到任何与我的 ReSharper IntelliSense 一起使用的文档吗 如果我转至 ReSharper 选项并启用 Visual Studio IntelliSense 则在浏览 IntelliSense 弹出窗口中
  • 对 MutationObserver 感到困惑

    所以我一直在绞尽脑汁地思考如何使用MutationObserver 但没有取得任何进展 我在 W3C 网站和 MDN 上读到过相关内容 当在 MDN 中阅读它时 在示例之前一切都有意义 select the target node var
  • jQuery Datepicker:单击日期时防止关闭选择器

    大家好 stackoverflow ers 我正在使用jQuery 日期选择器插件 http docs jquery com UI API 1 7 2 Datepicker 和 一起马丁 米利西奇时间选择器 http milesich co
  • 为什么借用的范围不是迭代器,但范围却是?

    范围如何被消耗的一个例子是 let coll 1 10 for i in coll println i is i println coll length is coll len 这将失败 error E0382 borrow of move
  • 在数据库中保存 base64 字符串是一个好习惯吗?

    我正在开发一个 Android 应用程序 用户可以将图像发送到我的网络服务 目前 在我的 WebService 上 我得到一个 Base64 字符串并将其保存在数据库的表中 我的问题 这是一个好的做法吗 因为据我所知 Base64 字符串是