.
1. MySQL TINYINT là gì?
Trong MySQL, TINYINT là một kiểu dữ liệu dùng để lưu trữ các số nguyên rất nhỏ. TINYINT chiếm 1 byte (8 bit) bộ nhớ và có thể lưu các giá trị từ -128 đến 127 khi có dấu, hoặc từ 0 đến 255 khi không có dấu. TINYINT chủ yếu được sử dụng để quản lý hiệu quả các giá trị số nhỏ và các cờ Boolean.
Các tính năng của TINYINT
- Tiết kiệm bộ nhớ : Vì
TINYINTchỉ dùng 1 byte, nên nó tiết kiệm bộ nhớ hơn so với các kiểu số nguyên khác nhưINThayBIGINT. - Tùy chọn có dấu và không dấu : Một TINYINT có dấu có thể chứa các giá trị âm, trong khi sử dụng tùy chọn không dấu sẽ mở rộng phạm vi dương tối đa.
Ví dụ sử dụng TINYINT
Trong ví dụ dưới đây, một bảng được tạo bằng kiểu TINYINT để quản lý các giá trị số nhỏ và các cờ.
CREATE TABLE user_status (
user_id INT PRIMARY KEY,
is_active TINYINT(1) NOT NULL DEFAULT 0
);
Trong ví dụ này, cột is_active được định nghĩa là TINYINT(1) và được dùng để quản lý việc người dùng có đang hoạt động hay không. Giá trị 0 biểu thị “không hoạt động”, và 1 biểu thị “đang hoạt động”.
2. Các trường hợp sử dụng thực tế cho TINYINT
TINYINT là kiểu dữ liệu lý tưởng để quản lý các số nguyên nhỏ và các giá trị Boolean. Nó được sử dụng rộng rãi để tối ưu hiệu năng cơ sở dữ liệu và giảm tiêu thụ dung lượng lưu trữ.
Sử dụng TINYINT như một giá trị Boolean
Vì MySQL không có kiểu BOOLEAN riêng, nên TINYINT(1) thường được dùng thay thế để quản lý các giá trị Boolean. Thông thường, 0 đại diện cho “false” và 1 đại diện cho “true”. Cách tiếp cận này giúp việc quản lý các cờ trở nên đơn giản.
UPDATE user_status SET is_active = NOT is_active WHERE user_id = 1;
Trong ví dụ này, giá trị của is_active cho người dùng được chỉ định sẽ được chuyển đổi. Điều này cho phép việc bật/tắt các giá trị Boolean một cách dễ dàng.
Quản lý các giá trị số nhỏ
Ví dụ, TINYINT cũng hiệu quả khi quản lý các số nguyên trong một phạm vi rất nhỏ, chẳng hạn như số lượng tồn kho của sản phẩm. Nếu số lượng sản phẩm không vượt quá 255, việc sử dụng TINYINT UNSIGNED cho phép quản lý dữ liệu đầy đủ trong phạm vi không dấu.

3. So sánh TINYINT với các kiểu số nguyên khác
MySQL cung cấp nhiều kiểu số nguyên, và TINYINT là kiểu nhỏ nhất trong số chúng. Ngược lại, INT và BIGINT có thể lưu trữ các giá trị trong phạm vi lớn hơn rất nhiều. Dưới đây là sự khác biệt giữa TINYINT và các kiểu số nguyên chính khác.
Sự khác biệt giữa INT và TINYINT
INT sử dụng 4 byte và hỗ trợ các giá trị từ -2147483648 đến 2147483647, trong khi TINYINT chỉ dùng 1 byte và hỗ trợ các giá trị từ -128 đến 127 (có dấu) hoặc từ 0 đến 255 (không dấu). Do đó, việc sử dụng TINYINT cho phép quản lý dữ liệu trong phạm vi phù hợp một cách hiệu quả đồng thời tiết kiệm bộ nhớ.
So sánh với các kiểu số nguyên nhỏ khác
Ngoài TINYINT, MySQL còn cung cấp các kiểu dữ liệu như SMALLINT (2 byte) và MEDIUMINT (3 byte). Phạm vi số nguyên thay đổi tùy theo kích thước byte của mỗi kiểu, vì vậy việc chọn kiểu dữ liệu phù hợp là rất quan trọng.
4. Lựa chọn giữa có dấu và không dấu
Trong MySQL, kiểu TINYINT có thể được định nghĩa là có dấu hoặc không dấu. Hiểu rõ sự khác nhau và lựa chọn phù hợp sẽ giúp quản lý dữ liệu hiệu quả hơn.
Ưu điểm của TINYINT không dấu
Một TINYINT không dấu (TINYINT UNSIGNED) hỗ trợ các giá trị từ 0 đến 255, rất hữu ích khi không cần các giá trị âm. Ví dụ, khi lưu trữ tuổi người dùng hoặc số lượng sản phẩm—trong các trường hợp này giá trị âm là không cần thiết—việc sử dụng UNSIGNED mở rộng phạm vi sử dụng và cho phép quản lý dữ liệu hiệu quả hơn.
Ưu điểm của TINYINT có dấu
Một TINYINT có dấu hỗ trợ các giá trị từ -128 đến 127, phù hợp khi cần các giá trị âm. Ví dụ, đối với dữ liệu như nhiệt độ có thể có giá trị âm, tùy chọn có dấu là thích hợp.
5. Ví dụ về việc sử dụng TINYINT
Dưới đây là một ví dụ về cách sử dụng TINYINT để quản lý dữ liệu trong cơ sở dữ liệu. Ví dụ, khi quản lý số lượng sản phẩm, bạn có thể định nghĩa bảng như sau:
CREATE TABLE products (
product_id INT PRIMARY KEY,
quantity TINYINT UNSIGNED NOT NULL
);
Trong ví dụ này, số lượng tồn kho sản phẩm quantity được quản lý dưới dạng TINYINT không dấu, cho phép giá trị lên đến 255. Ngoài ra, bằng cách chỉ định NOT NULL, bạn đảm bảo rằng một giá trị luôn được đặt.
Bạn cũng có thể sử dụng TINYINT để quản lý các cờ trạng thái người dùng một cách đơn giản và hiệu quả. Đặc biệt khi xử lý lượng dữ liệu lớn, việc sử dụng TINYINT có thể cải thiện hiệu suất tổng thể của cơ sở dữ liệu.
6. Tóm tắt và Các Thực hành Tốt nhất
TINYINT là một trong những kiểu dữ liệu tiết kiệm bộ nhớ nhất trong MySQL và lý tưởng để quản lý hiệu quả các số nguyên nhỏ và cờ. Bằng cách sử dụng TINYINT cho các giá trị Boolean hoặc phạm vi số nhỏ, bạn có thể tối ưu hóa cả việc sử dụng lưu trữ và hiệu suất cơ sở dữ liệu.


