Hackerboard WikiHaboBlog

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

durchnummerierung optimieren

Diskussion: durchnummerierung optimieren im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; heyho hab prinzipiell folgede tabelle: Code: CREATE TABLE IF NOT EXISTS `uptime` ( `id` int(10) unsigned NOT NULL auto_increment, `user_id` ...

Antwort
Alt 14.11.09, 20:25   #1 (permalink)
Member of Honour
 
Benutzerbild von easteregg
 
Registriert seit: 14.09.07
easteregg Leistung: Pentium Ieasteregg Leistung: Pentium I
easteregg eine Nachricht über ICQ schicken
Likes: 60
Standard durchnummerierung optimieren


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?
__________________
» Flattr mich! - Wenn dir mein Beitrag geholfen hat! «
<| 2 AMD Opterons 2384@ 8x3,2ghz | Tyan S2915 | 10GB | 2x 8800GT | 8400GS | Dell 3008WFP + 2x2007FP |>
easteregg ist offline   Mit Zitat antworten
Alt 14.11.09, 22:08   #2 (permalink)
 
Registriert seit: 20.01.03
Zwirni Leistung: Z3
Likes: 0
Standard

Wieso zählst Du nicht in MySQL selbst?

Code:
SET @counter:=0;
SELECT (@counter:=@counter+1) AS 'Nummerierung', <weitere spalten> FROM tabelle
Zwirni ist offline   Mit Zitat antworten
   
HaBOT
 

Werbung ist gerade online    
Alt 14.11.09, 22:09   #3 (permalink)
Member of Honour
Themenstarter
 
Benutzerbild von easteregg
 
Registriert seit: 14.09.07
easteregg Leistung: Pentium Ieasteregg Leistung: Pentium I
easteregg eine Nachricht über ICQ schicken
Likes: 60
Standard

super, genau sowas hab ich gesucht! danke dir
edit: ach ne quark, zu früh gefreut!

ich hab ja so nur die plätze der rechner von dem user selbst.
sprich wenn ich nur einen rechner zurück bekomme ist der auf platz 1 und das eben stimmt ja nicht!
__________________
» Flattr mich! - Wenn dir mein Beitrag geholfen hat! «
<| 2 AMD Opterons 2384@ 8x3,2ghz | Tyan S2915 | 10GB | 2x 8800GT | 8400GS | Dell 3008WFP + 2x2007FP |>
easteregg ist offline   Mit Zitat antworten
Antwort
   

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » durchnummerierung optimieren
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Abfrage optimieren keksinat0r (Web-) Design und webbasierte Sprachen 2 11.09.09 21:47
Kernel für Thinkpad optimieren Serow Linux/UNIX 12 29.09.08 09:36
Startvorgang von WindowsXP optimieren Erazer Windows 5 05.06.02 18:25
DSL f??r XP optimieren maedmexx Windows 9 01.12.01 03:06


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61