我正在研究一個允許人們通過pdf文件上傳數據的應用程序。在用我的應用程序閱讀PDF後,我還希望將第一頁到最後一頁中的所有字符存儲在pdf中。什麼是mysql文本類型的最大限制
我的恐懼是一個pdf文件可能高達80MB,可以包含超過10億字符。 MySQL可以處理如此大量的字符嗎?
我正在研究一個允許人們通過pdf文件上傳數據的應用程序。在用我的應用程序閱讀PDF後,我還希望將第一頁到最後一頁中的所有字符存儲在pdf中。什麼是mysql文本類型的最大限制
我的恐懼是一個pdf文件可能高達80MB,可以包含超過10億字符。 MySQL可以處理如此大量的字符嗎?
MySQL的數據存儲需求可以在這裏找到:MySQL5 storage requirements
在那裏,我發現這個表(L =字符串的長度):
TINYBLOB, TINYTEXT L + 1 bytes, where L < 2^8 = 256b
BLOB, TEXT L + 2 bytes, where L < 2^16 = 65.536 = 65kb
MEDIUMBLOB, MEDIUMTEXT L + 3 bytes, where L < 2^24 = 16.777.216 = 16mb
LONGBLOB, LONGTEXT L + 4 bytes, where L < 2^32 = 4.294.967.296 = 4.3gb
所以對於80Mb的頁面,你需要一個LONGTEXT。對於PDF,我會建議一個LONGBLOB類型,因爲這是二進制格式。
備案:Eggyal有一個觀點,最好不要將此PDF存儲在數據庫中,而是存儲在磁盤上。所以我會建議不要通過數據庫,如果你真的需要把它放在MySQL中使用一個LONGBLOB
不錯。現在我更好地理解這是如何計算的 – Uchenna
檢查此鏈接:http://dev.mysql.com/doc/refman/5.7/en/storage-requirements.html
TINYTEXT 256 bytes
TEXT 65,535 bytes ~64kb
MEDIUMTEXT 16,777,215 bytes ~16MB
LONGTEXT 4,294,967,295 bytes ~4GB
這已經問過:http://stackoverflow.com/questions/6766781/maximum-length -for-mysql-type-text –
僅僅因爲MySQL *可以*存儲數據並不意味着它*應該*。爲什麼不將文件存儲在高度優化的文件存儲數據庫,文件系統中? *將*關聯到相關的MySQL記錄(一個*關係*數據庫管理系統)並在該文件存儲數據庫(即文件的路徑)中輸入合適的密鑰。 – eggyal
Eggyal有非常有效的點 – Jeroen