MYSQL INNODB主键使用varchar和int的区别

发布网友

我来回答

2个回答

热心网友

char是定长,查询的时候全字匹配,所以查询效率极高。
varchar是可伸缩长度的字符串,查询单个字符匹配,效率比char慢。

热心网友

前者可以存字符,并且长度可变。存两个字存一百个字都行。
后者只能存数字。
InnoDB 被称为索引组织型的存储引擎。主键使用的 B-Tree 来存储数据,即表行。这意味着 InnoDB 必须使用主键。如果表没有主键,InnoDB 会向表中添加一个隐藏的自动递增的 6 字节计数器,并使用该隐藏计数器作为主键。InnoDB 的隐藏主键存在一些问题。您应该始终在表上定义显式主键,并通过主键值访问所有 InnoDB 行。InnoDB 的二级索引也是一个B-Tree。搜索关键字由索引列组成,存储的值是匹配行的主键。通过二级索引进行搜索通常会导致主键的隐式搜索。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com