mysql navcate longblob 查詢結果導出倒入


由於之前項目為了查詢方便,且不受權限控制。所以把image儲存在了數據庫。但是也遇到了很多瓶頸問題。

1,丟圖從日志上查詢獲知,丟圖95%以上是由於mysql的timeout時間失效引起的。(由於另一個pdf文件也此存儲在mysql上面pdf頻繁存儲到數據庫,占用連接。一個圖片有時候可以有20-30m的大小,寫一張圖片耗費的時間還是比較長,所以引起丟圖的現象)。

2,圖片預覽特別不方面,必須借助navicat工具,而且查看特別費勁。

3,數據恢復特別困難(如果沒有備份的情況下,那就不用說)但是用navicat導出結構和數據以后,數據大了以后(10G)以后。導入不是內存溢出,就是導入失敗(莫名的)

4,導入導出部分數據困難。

但是項目已經上了,要升級。也是一件很是痛苦的事情。但有時候不需要整張image表都導出。我只是看其中幾條數據。然后恢復到另外一個電腦上。

笨的辦法就是利用navicat工具查詢分析器,把需要的結果查詢出來(單張表一定要查詢*列),然后利用其導出功能把數據導出成.sql文件,如下圖

最后導出。在我的桌面上就多了一個abc.sql文件。

這樣就把一張大表的longblob字段的給導出了。但是這個文件也不小,100m-500m不等。這樣導出的sql缺少一個表名。需要在每句insert 語句后面加上表名,但是編輯這樣的文件也是一件極為痛苦的事情。

通過bing查詢得知,可以用mysql的load命令把這些內容導入指定的表名。

把abc.sql文件復制到mysql要導入的數據庫目錄下。例如我要把abc.sql導入數據庫aa庫,那么在mysql的datadir目錄中一定有個aa的目錄。那么就把abc.sql復制到aa目錄下。

cmd進入mysql的bin目錄,然后

mysql -u root -p dbname;

輸入密碼

然后就可以用

load data infile 'abc.sql' into table tablename;

我的數據庫版本是mysql v5.621

其他版本沒有試過。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM