MYSQL INNODB主键使用varchar和int的区别
发布网友
发布时间:2022-04-23 16:25
我来回答
共2个回答
热心网友
时间:2022-04-08 21:26
char是定长,查询的时候全字匹配,所以查询效率极高。
varchar是可伸缩长度的字符串,查询单个字符匹配,效率比char慢。
热心网友
时间:2022-04-08 22:44
前者可以存字符,并且长度可变。存两个字存一百个字都行。
后者只能存数字。
InnoDB 被称为索引组织型的存储引擎。主键使用的 B-Tree 来存储数据,即表行。这意味着 InnoDB 必须使用主键。如果表没有主键,InnoDB 会向表中添加一个隐藏的自动递增的 6 字节计数器,并使用该隐藏计数器作为主键。InnoDB 的隐藏主键存在一些问题。您应该始终在表上定义显式主键,并通过主键值访问所有 InnoDB 行。InnoDB 的二级索引也是一个B-Tree。搜索关键字由索引列组成,存储的值是匹配行的主键。通过二级索引进行搜索通常会导致主键的隐式搜索。