谷歌搜索但不明白如何将值插入 MySql 表。
让我们说这个请求:
INSERT INTO employee(id, name) VALUES(200, 'Jason');
如果 id=200,将返回异常:
ERROR 1062 (23000): Duplicate entry '200' for key 'PRIMARY'
我想知道数据库是如何知道这个密钥的存在的?是循环遍历表中的所有值,还是进行二分查找?
谷歌搜索但不明白如何将值插入 MySql 表。
让我们说这个请求:
INSERT INTO employee(id, name) VALUES(200, 'Jason');
如果 id=200,将返回异常:
ERROR 1062 (23000): Duplicate entry '200' for key 'PRIMARY'
我想知道数据库是如何知道这个密钥的存在的?是循环遍历表中的所有值,还是进行二分查找?
由于所描述的案例涉及
primary key,因此假设搜索是在索引中执行的,因此它不是基于枚举的,这是合乎逻辑的。出于某种原因,我也怀疑其纯粹形式的二进制性,它取决于索引的类型。