我计划将图片存储在数据库(MySQL 5.6.15,InnoDB)中,作为MEDIUMBLOB,我想知道哪种表结构更有效。
对于每一张图片,我都会存储一个校验和,并且每次首先检查校验和,看看图片是否需要更新。考虑到每次都会访问校验和,但图片可能不是,如果我将它们存储在一个表或两个单独的表中,会不会产生(性能上的)不同:
user_id,图片,图片,picture_checksum,
或
user_id \x{e76f}图片 user_id \x{e76f} picture_checksum \x{e76f}
(P.S.:我不想卷入“文件系统与数据库”的争论,我要用的是数据库。)
发布于 2014-04-16 16:01:19
一个表是这里的方法,因为数据本质上是相关的,而且您没有X到多的关系。
在执行简单查询时,请注意不要加载映像。如果您从未使用过SELECT *数据,那么当它导致您的连接上出现兆字节的数据时,这是个坏主意。
相反,要尽可能精确:
SELECT picture_checksum FROM pictures WHERE user_id=?请注意,您可能希望使用比简单校验和更健壮和更抗冲突的方法,如SHA1。
https://stackoverflow.com/questions/23114359
复制相似问题