我有两张桌子。表people
有 16500 行,visits
有 17000 行。我的查询包含 LEFT JOIN 因为我必须链接visits
到people
. 我知道,如果有人记录没有访问记录,那么这些访问列将为 NULL。
这个简单的查询就像一个魅力。
SELECT * FROM people LEFT JOIN visits ON people.id = visits.id_people;
但是当我尝试计算返回的行数时,MySQL 会挂起(或计数)30 多秒或直到我杀死它。这在生产环境中是不可接受的。
以下是我尝试使用的不同方法来计算结果行,但它们都具有相同的悬挂结果。
SELECT COUNT(*) FROM people LEFT JOIN visits ON people.id = visits.id_people;
SELECT SQL_CALC_FOUND_ROWS * FROM people LEFT JOIN visits ON people.id = visits.id_people;
SELECT FOUND_ROWS();
奇怪的是,这些方法在小型测试表(5 行和 5 行)上运行良好。
任何人都可以帮忙吗?