最快的插入方式,如果不存在,则在MySQL中获取id

Zna*_*kus 6 mysql optimization performance pdo lastinsertid

有这张桌子.

| id | domain |
Run Code Online (Sandbox Code Playgroud)

id是主键.domain是一个独特的钥匙.

我想要:

  1. 如果新域已不存在,请插入新域.
  2. 获取该id域名.

现在我这样做:

INSERT INTO domains
SET domain = 'exemple.com'
ON DUPLICATE KEY UPDATE id = LAST_INSERT_ID(id)
Run Code Online (Sandbox Code Playgroud)

然后PDO::lastInsertId()得到id.

但关键是这个速度尽可能快,所以我会问:我可以用更好的方式做到这一点吗?

Zna*_*kus 1

除非有人另有说法,否则我会说不,这是最好的方法