最近在做項目中需要將一些圖片保存到mysql中,那么在mysql中應該建什么類型的表來保存這些圖片呢?
首先我們需要知道的是,mysql中有四種類型的二進制(BLOB)數據類型,它們分別是TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。其中每種類型的最大存儲長度不同,具體如下:
TINYBLOB: 最大長度為 255 字節 BLOB: 最大長度為 65,535 字節 MEDIUMBLOB: 最大長度為 16,777,215 字節 LONGBLOB: 最大長度為 4,294,967,295 字節
由于圖片的大小可能不同,因此我們可以根據實際需要來選擇不同大小的BLOB類型。一般來說,如果我們要保存較小的圖片,比如頭像之類的,可以選擇TINYBLOB或者BLOB類型。如果是較大的圖片,可以選擇MEDIUMBLOB或者LONGBLOB類型。
下面是一個示例的mysql建表語句:
CREATE TABLE `image` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL COMMENT '圖片名稱', `data` mediumblob COMMENT '圖片數據', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='圖片信息表';
在這個表中,我們使用了mediumblob類型的data字段來保存圖片數據。