为什么不推荐使用MySQL Blob

时间:2016-10-12 15:33:07

标签: mysql database blob

我正在考虑整理一份我想在网上展示的小杂志,并认为这样做的一个好方法就是有一个由ID号组成的表格,以及用于将每个页面显示为blob数据的blob数据。图像。

因此,如果我有一个由10页组成的问题,它将如下所示:

ID . Page_1_Blob . Page_2_Blob . Page_3_Blob . Page_4_Blob . Page_5_Blob . etc

事实上,在为图像存储blob数据时,我看到了很多消极性,更具体地说,因为它减慢了数据库的速度?这是真的吗?是否有任何支持以这种方式使用blob数据的论据?

1 个答案:

答案 0 :(得分:0)

所以我对它的理解是BLOB存储在实际的数据库文件中。因此,如果您有一个10GB的杂志,那么10GB将最终出现在实际的SQL数据库文件中。进行查询时,文件会被加载到RAM中。显然,搜索10MB文件要比加载和搜索10GB文件快得多。答案是使用SqlFilestream将信息存储在服务器的实际文件结构中,但是这会导致各种类型的ballaches,因为SqlFilestream API只能在实际的机器上运行,而不能在远程机器上运行。对于我的数据库,我不得不设置一个WCF程序来将大量文件添加到我的数据库中。

如果您只有一个10页的数据库,那么无论如何都要坚持使用BLOB,但是如果您在杂志之后添加杂志则会导致速度减慢。

如果您尝试执行"从杂志"中选择*,那么这些查询将永远存在,因为它实际上从服务器返回二进制数据作为查询的一部分。如果您对视频进行此类查询,那么您将等待很长时间。