2014-11-04 12 views
0

我使用insert compress {hex data}將數據存儲到innodb表BLOB列中。我需要以編程方式使用mysql c api選擇壓縮數據,並在應用程序級別對其進行解壓縮。我可以這樣做嗎,使用zlib.h和解壓縮函數或膨脹/放氣方法?如何使用zlib.h在mYSQL_RES中解壓縮壓縮BLOB而不使用UNCOMPRESS在mysql查詢中

我不能在mysql查詢中使用解壓縮,因爲它是一個大的結果集,並且數據通過網絡傳播到不同的服務器上。

例如:

MYSQL_RES *results = NULL; 
MYSQL_ROW row; 

results = exec_query(); 
while (row = mysql_fetch_row(results)) 
{ 
     // row[0] = uncompressed size 
     // row[1] = compressed size 
     // row[2] = compressed blob 

     // does MYSQL "INSERT COMPRESS({data}) INTO ... " use LZ77? 
     // will this work? 
     // uncompress (Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen) 
} 

回答

0

我不知道你是做正確,我無法理解你想要什麼。

基本上BLOB用於存儲如圖片,視頻等

二進制數據,所以你存儲它們逐字節和檢索相同。

此外,你想壓縮。

因此,壓縮字節並存儲。在檢索時解壓縮它。

A樣本例如:

select uncompress(compress('hello world')) as sample; 

enter image description here

本教程here顯示瞭如何使用MySQL C API將圖像插入MySQL數據庫。

+0

請看更新的問題解壓縮會;不行 – sjohnson 2014-11-04 18:13:34

相關問題