MySQL數據庫中的tinyint是一種數據類型,用于存儲小整數值。它占用1字節,可在-128到127范圍內存儲整數。
當一個表中有大量的tinyint類型的列時,可以大大減少內存占用。這是因為,如果一個表中有1萬行數據,而每行數據有10個tinyint類型的列,那么它將占用10 * 1萬 * 1字節 = 100KB的內存。
CREATE TABLE `product` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(50) NOT NULL, `price` DECIMAL(10,2) NOT NULL, `description` TEXT, `shelf_life` TINYINT(3) NOT NULL COMMENT '商品保質期', PRIMARY KEY (`id`) ) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COMMENT='產品表';
在SQL語句中,我們使用TINYINT(3)定義了一個tinyint類型的列,其中3代表顯示寬度。如果在插入該列時,超過了tinyint類型能夠表示的范圍(-128到127),則會出現截斷錯誤。
TINYINT類型可以用于存儲二進制數據,如用戶權限,1代表有權限,0代表無權限。同時,它也可以用于存儲狀態信息,如用戶的狀態,1代表啟用,0代表禁用。
在開發中,我們可以使用節省空間的tinyint類型代替int類型,從而提高數據讀取的效率,減少內存的使用。