主键varcharmysql

主键varcharmysql,mysql,indexing,Mysql,Indexing,我有一个包含5列的表,其中一列是由应用程序生成的uuid。在表中,uuid列是varchar(64),主键是int autoincremental。删除id列并像primarykey一样使用uuid是个坏主意吗?可能是的!数字键占用更少的内存,索引一开始性能更好 我发现了一个类似的问题您需要id列吗?你插入了很多行吗?你有很多二级索引和外键吗?正如您现在应该猜到的,答案是:“这取决于”。是否有子表引用该表中的行?小表这一点都不重要,但对于数百万行的大表,存在一些速度问题UUID的速度问题更多:好

我有一个包含5列的表,其中一列是由应用程序生成的uuid。在表中,uuid列是varchar(64),主键是int autoincremental。删除id列并像primarykey一样使用uuid是个坏主意吗?

可能是的!数字键占用更少的内存,索引一开始性能更好


我发现了一个类似的问题

您需要
id
列吗?你插入了很多行吗?你有很多二级索引和外键吗?正如您现在应该猜到的,答案是:“这取决于”。是否有子表引用该表中的行?小表这一点都不重要,但对于数百万行的大表,存在一些速度问题UUID的速度问题更多:好的,谢谢。我放弃像primarykey一样设置uuid