优化数据库中的MySQL文件(blob)

时间:2011-03-15 22:42:05

标签: mysql database database-design blob mysql5

由于内部原因(框架结构)我在一个带有mediumBLOB的表中保存了很多图像。

考虑到回溯这些图像的查询是以相当低的速率发送的,有没有办法告诉mysql从内存中保留这个表?我不希望在内存中只使用一次2GB的表。

有没有办法优化这个?

(注意:如果这有助于我可以在只包含此表的新数据库中移动此表)

谢谢

2 个答案:

答案 0 :(得分:3)

MySQL不会为BLOB类型生成内存表,因为存储引擎不支持它。

http://dev.mysql.com/doc/refman/5.0/en/internal-temporary-tables.html

“某些条件阻止使用内存中的临时表,在这种情况下服务器使用磁盘表:

  • 表“
  • 中存在BLOB或TEXT列

这意味着您应该将BLOB放入不同的表中,并将其他有用的数据保留在BLOBless表中,以便优化表。

答案 1 :(得分:0)

将这种表格移动到一个单独的数据库听起来像是一种非常有效的方法。在工作中,我们有一个数据库服务器用于我们的操作内容(订单,目录等),一个用于日志(Web日志和电子邮件副本)和媒体(图像,视频和其他二进制文件)。即使在同一台机器上运行单独的实例也是值得的,因为正如您所提到的,它会对缓冲区缓存(或您的存储引擎的等价物)进行分区。