heyho
hab prinzipiell folgede tabelle:
Code:
CREATE TABLE IF NOT EXISTS `uptime` (
`id` int(10) unsigned NOT NULL auto_increment,
`user_id` int(10) unsigned NOT NULL,
`pc_id` int(10) unsigned NOT NULL,
`start` int(10) unsigned NOT NULL,
`last` int(10) unsigned NOT NULL default '0',
`active` tinyint(1) unsigned NOT NULL default '1',
`uptime` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`),
KEY `last` (`last`)
)
wenn ich jetzt die ganze liste an uptimes haben möchte, allerdings nur die, die active = 1 sind ist eine durchnummerierung ja kein problem. wenn ich das ganze einfach nach uptime sortiere und anschliesend in php ne variable hochzähle.
wenn ich jetzt aber von einem user und deren rechner die uptimes undplazierung haben will mach ich das bisher so:
Code:
SELECT <hauen zeug>,(select count(id) from uptime where uptime > u.uptime and active = 1)+1 as rank
FROM pc as p
left outer JOIN uptime as u ON p.id = u.pc_id
WHERE p.user_id = '$id' and (u.active = 1 OR u.active is NULL) das problem hierbei is der subselect.
wenn ich nun nen user mit vielen rechnern hab wird das ziemlich lahm. wie kann man sowas optimieren?