Khi làm việc với cơ sở dữ liệu MySQL, việc tối ưu hóa dung lượng lưu trữ và hiệu suất truy vấn là hai yếu tố quan trọng cần xem xét. Một trong những cách để đạt được điều này là sử dụng đúng kiểu dữ liệu cho các cột trong bảng. Đối với các giá trị nguyên nhỏ, MySQL cung cấp một số kiểu dữ liệu phù hợp, trong đó có TINYINT
.
Giới thiệu về kiểu dữ liệu TINYINT
TINYINT
là một kiểu dữ liệu nguyên có kích thước nhỏ nhất trong MySQL, chiếm chỉ 1 byte bộ nhớ. Nó phổ biến trong các trường hợp giá trị cần lưu trữ có phạm vi nhỏ và giúp tiết kiệm dung lượng so với các kiểu dữ liệu lớn hơn như INT
.
Phạm vi giá trị của TINYINT
Một cột sử dụng kiểu dữ liệu TINYINT
có thể chứa các giá trị trong hai phạm vi chính, tùy thuộc vào việc cột đó có được khai báo là UNSIGNED
hay không:
- Signed
TINYINT
: Phạm vi -128 đến 127. - Unsigned
TINYINT
: Phạm vi 0 đến 255.
Việc chọn kiểu signed hay unsigned phụ thuộc vào yêu cầu cụ thể của dữ liệu bạn cần lưu trữ. Nếu bạn chắc chắn rằng cột đó không cần chứa giá trị âm, sử dụng UNSIGNED
sẽ hiệu quả hơn trong việc tận dụng toàn bộ khoảng giá trị từ 0 đến 255.
Khai báo kiểu TINYINT
Để khai báo một cột sử dụng kiểu dữ liệu TINYINT
, bạn có thể sử dụng cú pháp SQL sau đây:
CREATE TABLE ten_bang (
ten_cot TINYINT
);
Nếu bạn muốn sử dụng UNSIGNED
, cú pháp sẽ như sau:
CREATE TABLE ten_bang (
ten_cot TINYINT UNSIGNED
);
Ví dụ cụ thể
Giả sử bạn cần tạo một bảng để lưu trữ thông tin về tuổi của các học sinh, mà tuổi này không bao giờ vượt quá 120. Dưới đây là cách khai báo bảng sử dụng TINYINT
để lưu trữ tuổi:
CREATE TABLE hoc_sinh (
id INT AUTO_INCREMENT PRIMARY KEY,
ten VARCHAR(50),
tuoi TINYINT UNSIGNED
);
Trong ví dụ trên, cột tuoi
được khai báo với kiểu TINYINT UNSIGNED
, cho phép lưu trữ giá trị từ 0 đến 255 – đủ dải giá trị để lưu trữ độ tuổi hợp lý mà không cần phải sử dụng thêm dung lượng bộ nhớ.
Kết luận
Sử dụng TINYINT
là một giải pháp hiệu quả cho việc lưu trữ các giá trị nguyên nhỏ trong MySQL. Nó giúp tiết kiệm dung lượng bộ nhớ và cải thiện hiệu suất truy vấn khi bạn chỉ cần lưu trữ những giá trị trong phạm vi nhỏ. Đừng quên cân nhắc việc sử dụng UNSIGNED
nếu bạn không cần lưu trữ các giá trị âm, để tận dụng tối đa phạm vi giá trị mà kiểu dữ liệu này cung cấp.
Comments