小编Dmi*_*nko的帖子

MYSQL作为查询使用子查询而不是2个查询(+ php)

我有桌子(大约80'000行),看起来像

id, parentId, col1, col2, col3...
 1,     null, 'A', 'B', 'C'
 2,        1, ...
 3,        1, ...
 4,     null, ...
 5,        4, ...
Run Code Online (Sandbox Code Playgroud)

(一级父母 - 仅限儿童)

我需要获得所有依赖行 -

SELECT ... 
FROM table 
WHERE id = :id OR parentId = :id OR id IN (
    SELECT parentId 
    FROM table 
    WHERE id = :id
    )
Run Code Online (Sandbox Code Playgroud)

但为什么这个请求工作缓慢而不是2请求 - 如果我先在php上获得parentId?

$t = executeQuery('SELECT parentId FROM table WHERE id = :Id;', $id);
if ($t) {
    $id = $t;
}

$t = executeQuery('SELECT * FROM table …
Run Code Online (Sandbox Code Playgroud)

php mysql performance

5
推荐指数
1
解决办法
174
查看次数

标签 统计

mysql ×1

performance ×1

php ×1