UUID(Universally Unique Identifier)是一种由 128 位数构成的标识符,通常用于确保数据库表中的每一行都具有唯一的标识。MySQL 支持 UUID 类型,并且可以将其设置为主键。
MySQL 中没有专门的 UUID 数据类型,但可以使用 CHAR(36)
或 BINARY(16)
来存储 UUID。
CREATE TABLE users (
id CHAR(36) PRIMARY KEY DEFAULT (UUID()),
name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL UNIQUE
);
INSERT INTO users (name, email) VALUES ('John Doe', 'john.doe@example.com');
SELECT * FROM users;
原因:UUID 是随机生成的,可能会导致插入操作的性能下降,尤其是在高并发环境下。
解决方法:
uuid_generate_v1()
(基于时间戳)或 uuid_generate_v4()
(随机生成)。BINARY(16)
类型来存储 UUID,这样可以减少存储空间并提高索引效率。CREATE TABLE users (
id BINARY(16) PRIMARY KEY DEFAULT (UUID_TO_BIN(UUID())),
name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL UNIQUE
);
希望这些信息对你有所帮助!
领取专属 10元无门槛券
手把手带您无忧上云