首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将图像存储在枚举列中的MySQL

问将图像存储在枚举列中的MySQL
EN

Stack Overflow用户
提问于 2011-09-26 19:44:54
回答 1查看 188关注 0票数 0

思想实验:

您有一个CMS,它允许用户上传图像,并且每个页面都作为一行存储在数据库中。当用户上传图像时,图像被转换为base64编码的字符串。然后,上传脚本更改表中的ENUM列,并将base64编码的字符串添加为允许的可枚举值。

在CMS的前端,将在页面上运行SELECT语句,使用ENUM列的值来使用data url呈现图像。

编写WHERE子句与枚举值匹配的select语句是否比WHERE子句与varchar列匹配的查询具有任何性能优势?

...And的记录,我知道这是一个绝对糟糕的设计一个CMS。我更感兴趣的是了解MySQL将如何在这种设置中遭受(或蓬勃发展)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-26 19:50:13

枚举存储实际上只是存储字段的值的索引。因此,您不会存储base64数据,而是将其关联的索引存储在任何并行表中,mysql将枚举值存储在其中。

但是,考虑到实际的SQL查询字符串必须包含完整的base64数据,因此您不必要地增加了查询字符串的大小。考虑一下,一个像素jpeg仍然是119字节,并且在base64表单中占160个字符。这可能是浪费空间的150+字符。即使是中等大小的图像,查询字符串也会更大,并且很容易超过mysql的max_allowed_packet设置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7560437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档