mysql 中使用not in 后为啥更慢了...
我们有一个session表,用来存储每天使用我们程序的计算机设备情况,有两个字段inputtime,device_uuid,分别用来存储时间和计算机的设备id(全球唯一),这个表中目前有20w条数据,inputtime字段做了索引.以前计算每天新增的计算机用户是这样计算的 SELECT count(DISTINCT device_uuid) FROM session WHERE inputtime <='今天时间'; SELECT count(DISTINCT device_uuid) FROM `mobile_session` WHERE inputtime <='昨天时间'; 用今天的减去昨天的,就可以得到每天的新增用户了.后来感觉这样做,每次都要进行两次全表搜索,效率不高,我们就新建了一张device表,目前有20000条数据,有一个字段deviceid,用来存储所有昨天之前使用过我们的程序的计算机设备id,然后今天新增的用户可以这样计算 SELECT count(DISTINCT device_uuid) from session where inputtime>='昨天' and inputtime <='今天' AND DEVICE_UUID NOT IN (SELECT deviceid FROM device ); 发现速度非常慢...请问如何优化呢?
貌似每次都会进行20w乘以2w次检索...