繁体   English   中英

将 Blob 列从 mysql dB 导出到磁盘并用新文件名替换

[英]Export blob column from mysql dB to disk and replace it with new file name

所以我正在研究一个遗留数据库,不幸的是数据库的性能非常慢。 在少于 10000 条记录的表中,简单的 select 查询最多可能需要 10 秒。

所以我试图调查问题并发现删除他们用来存储文件(主要是视频和图像)的列可以解决问题并大大提高性能。

除了添加适当的索引外,我还能够运行与过去需要 10-15 秒才能在 1 秒内运行的完全相同的查询。

所以我的问题是。 是否有任何现有的工具或脚本可以用来帮助我从数据库中导出这些 blob(视频)并将其保存到磁盘并使用文件系统上的新文件名/路径更新行?

如果没有,是否有任何适当的方法来优化数据库,以便这些 blob 不会对性能产生太大影响?

提示使用此数据库的某些客户端使用高级 orms,因此我们对 orm 用于获取行及其关系的查询没有太多控制。 所以我不能直接优化查询。

SELECT column FROM table1 WHERE id = 1 INTO DUMPFILE 'name.png';

这条路怎么样?

这些也是INTO_OUTFILE而不是INTO_DUMPFILE

13.2.10.1 SELECT... INTO 语句 SELECT... INTO 形式的 SELECT 可以将查询结果存储在变量中或写入文件:

SELECT... INTO var_list 选择列值并将它们存储到变量中。

SELECT... INTO OUTFILE 将选定的行写入文件。 可以指定列和行终止符以生成特定的 output 格式。

SELECT... INTO DUMPFILE 在没有任何格式的情况下将单行写入文件。

链接: https://dev.mysql.com/doc/refman/8.0/en/select-into.html

链接: https://dev.mysql.com/doc/refman/8.0/en/select.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM