MySql性能真的很慢

时间:2014-12-05 15:32:21

标签: mysql

$remainingQuery = "select * from $value s
where not exists (
    select userID from userLocations ul 
    where ul.userID = s.userID
    )  AND (userIP > '') GROUP BY userIP LIMIT 1"; 
$remainingResults = mysql_query($remainingQuery) or die(mysql_error());

上面的代码执行速度很慢。谁知道为什么?

以下是有关userLocations表的信息。

enum('ipv4', 'ipv6')    latin1_swedish_ci
ip_start    varbinary(16)
ip_end  varbinary(16)
country char(2)
stateprov   varchar(80)
city    varchar(80)

以下是以$ value

命名的表格之一
name    varchar(20)
score   bigint(20)
log longtext
difficulty  int(10)
games   int(11)
checkSum    text
bought  tinyint(1)
time    timestamp
bundle  int(11)
userID  text
userIP  text
city    text
country text

1 个答案:

答案 0 :(得分:0)

我在查询中看到了一些内容。首先,您通过userIP进行分组并限制为1.这将只返回一个用户IP,这是您真正想要的吗?你怎么知道返回哪个用户IP?

也许使用NOT IN会比你拥有的更快?

SELECT *
FROM table s
WHERE s.userID NOT IN (SELECT userId FROM userLocations) AND (userIP > '')
GROUP BY userIP
LIMIT 1;