簡體   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