在MySQL中存储图像用于备份目的——而不是为它们服务——这真的很糟糕吗?

在MySQL中存储图像用于备份目的——而不是为它们服务——这真的很糟糕吗?,mysql,image,text,blob,Mysql,Image,Text,Blob,我读过很多关于你不应该存储图像或使用MySQL数据库代替文件磁盘系统的评论文章。与其他文件;将文件存储在磁盘上,而不是MySQL中 但到目前为止,在我读过的所有文章中,他们都使用了相同的例子来说明它为什么不好。他们直接从数据库提供图像服务,换句话说,对于每个请求,它都包含一个数据库事务。我完全理解为什么这不是一个好主意 但是,例如,我希望将用户的配置文件映像与常规数据(如用户名、密码等)一起存储在MySQL数据库中作为备份。图像服务由另一个系统处理 所以我想到了一个表,它看起来像: +-----

我读过很多关于你不应该存储图像或使用MySQL数据库代替文件磁盘系统的评论文章。与其他文件;将文件存储在磁盘上,而不是MySQL中

但到目前为止,在我读过的所有文章中,他们都使用了相同的例子来说明它为什么不好。他们直接从数据库提供图像服务,换句话说,对于每个请求,它都包含一个数据库事务。我完全理解为什么这不是一个好主意

但是,例如,我希望将用户的配置文件映像与常规数据(如用户名、密码等)一起存储在MySQL数据库中作为备份。图像服务由另一个系统处理

所以我想到了一个表,它看起来像:

+--------------------+
| User               |
+--------------------+
| id (int)           |
| username (varchar) |
| password (varchar) |
| image (mediumtext) |
+--------------------+
因此,我有一些问题,以便我了解更多的缺点,以及它们是否足够严重

q1)在执行查询时,blob/text数据类型与其他非blob/text数据类型(int、varchars等)混合是否会产生严重影响

问题2)即使查询没有提到blob/text字段?在我的例子中,“图像”列?(意思不是从中选择*,而是从中选择id、用户名、密码)

问题3)负面性能是否与我可能拥有的用户越多呈线性关系?也就是说,如果我有10个或100000个用户,每次读取查找的性能是否仍然相同

问题4)如果数据存储在blob和文本中,性能方面是否有任何差异

我知道任何事情都会对绩效产生负面影响。这就是生活。但是我想试着去理解它是以什么方式产生的,以及它有多大的影响,这样我就可以自己打电话来判断它对我自己的项目是好是坏


任何反馈都将不胜感激

将图像路径保存在数据库中,并将图像存储到目录中。但这并不能回答我的问题。我想了解其中的含义以及它们是如何工作的,这样我就可以对当前项目和未来的项目进行自己的调用。编写一个脚本,用一些随机生成的数据填充带有/不带有blob的测试表,然后制作一些基准测试,并在此处发布答案。简单地说,你把提供图像数据的工作放在数据库中。通常,db上的[可选]压力越小越好,使用“推荐”方法类似于使用指针,而不是复制语言中函数参数的值