×

Khai báo kiểu dữ liệu nguyên nhỏ với INT1 trong MySQL

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