【发布时间】:2017-12-23 20:56:45
【问题描述】:
这些查询在 1 million record 的表中的性能方面有什么不同吗?
id是PRIMARY
userid是INDEXED
name是UNIQUE
组合查询:
$Query = 'SELECT name, (SELECT EXISTS (SELECT id FROM reports WHERE userid = 1)) AS status
FROM users
WHERE id = 1
LIMIT 1';
$stmt->prepare($Query);
$stmt->execute();
$row = $stmt->fetch();
$name = $row['name'];
$status = $row['status'];
多个查询:
1
$Query = 'SELECT name
FROM users
WHERE id = 1
LIMIT 1';
$stmt->prepare($Query);
$stmt->execute();
$row = $stmt->fetch();
$name = $row['name'];
2
$Query = 'SELECT EXISTS (SELECT id FROM reports WHERE userid = 1)';
$stmt->prepare($Query);
$stmt->execute();
$status = $stmt->fetchColumn();
【问题讨论】:
-
这与您 1 小时前提出的问题几乎相同:stackoverflow.com/questions/47955316/… 但您对我的建议一无所知:使用
EXPLAIN,自己衡量性能,至少显示SHOW CREATE TABLE在您发布问题时用于您的表格。