PaulB
Well-known member
- Affected version
- 2.2.9
getIpsByUser effectively uses the following query:
	
	
	
		
Although it looks complicated, this can be optimized quite a bit by an index on 
				
			
		SQL:
	
	SELECT ip,
    MIN(log_date) AS first_date,
    MAX(log_date) AS last_date,
    COUNT(*) AS total
FROM xf_ip
WHERE user_id = ?
GROUP BY ip
ORDER BY last_date DESC
LIMIT 150;(user_id, ip, log_date DESC).  It's not a perfect optimization, but it should be good enough for all but the largest forums. Larger forums may be able to get better performance by removing COUNT(*) AS total, but I haven't tested this. 
 
		 
 
		