Kom ihåg mig?
Home Menu

Menu


mySQL optimering

 
Ämnesverktyg Visningsalternativ
Oläst 2003-11-24, 18:29 #1
danjel danjel är inte uppkopplad
Medlem
 
Reg.datum: Nov 2003
Inlägg: 214
danjel danjel är inte uppkopplad
Medlem
 
Reg.datum: Nov 2003
Inlägg: 214
Hej!

Har lite problem med prestanda eller egentligen en allmän fundering kring denna typ av mysql frågor.
Nedanstående ska helt enkelt ta ut de 10 som senast har loggat in på ett system (tabellen inloggs ) och visa upp deras medlemsnamn som finns i en annan tabell (member)

SELECT
inloggs.*, member.user_name
FROM
inloggs, member
WHERE
inloggs.user_id=member.user_id
ORDER BY inloggs.id DESC
LIMIT 0,10

Denna tar ca 0.7 sekunder att exekvera,vilket i och för sig är godtagbart just nu men då innehåller inloggstabellen 120000 rader och members ca 6000 rader, inte speciellt mycket alltså....
(inloggs.user_id och member.user_id är indexerade, inloggs.id är auto increment)

Denna fråga går att optimera så här:

SELECT
inloggs.*, member.user_name
FROM
inloggs, member
WHERE
inloggs.user_id=member.user_id
AND inloggs.id > 119990
ORDER BY inloggs.id DESC
LIMIT 0,10


Alltså man hämtar först ut max värde för id och drar ifrån 10 , men det känns lite omständigt att behöva en extra query för detta..hur kan man annars göra ..någon som vet..?
danjel är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 18:12.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017