Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Khóa chính AUTO_INCREMENT lớn nhất trong MySQL dùng BIGINT

Để có phạm vi AUTO_INCREMENT rất lớn (gần như "vô hạn" đối với ứng dụng thực tế), sử dụng kiểu BIGINT (8 bytes,signed: ±9.22 quintillion).

Cú pháp

ten_cot BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY;

Ví dụ minh họa

Tạo bảng với BIGINT PK:

mysql> CREATE TABLE LargeAutoIncrement (
    -> Id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY
    -> );

Chèn từ giá trị gần max của BIGINT (9.223.372.036.854.775.807):

mysql> INSERT INTO LargeAutoIncrement VALUES(9223372036854775805);
mysql> INSERT INTO LargeAutoIncrement VALUES();
mysql> INSERT INTO LargeAutoIncrement VALUES();

Kết quả tự động tăng:

+---------------------+
| Id                  |
+---------------------+
| 9223372036854775805 |
| 9223372036854775806 |
| 9223372036854775807 |
+---------------------+

So sánh các kiểu số cho PK

KiểuKích thướcMax UNSIGNEDMax SIGNED
TINYINT1 byte255127
SMALLINT2 bytes65,53532,767
MEDIUMINT3 bytes16.7M8.3M
INT4 bytes4.29B2.14B
BIGINT8 bytes18.44Q9.22Q

Lưu ý:

  • BIGINT tốn 8 bytes/giá trị (vs 4 bytes INT)
  • Index BIGINT lớn hơn, chậm hơn một chút
  • Đủ dùng cho 99.9% ứng dụng: INT UNSIGNED (4.29 tỷ) đã rất lớn
  • Chỉ dùng BIGINT khi thực sự cần > 4 tỷ bản ghi