Kom ihåg mig?
Home Menu

Menu


SQL-hjälp!

 
Ämnesverktyg Visningsalternativ
Oläst 2009-01-25, 21:12 #1
Landos avatar
Lando Lando är inte uppkopplad
Medlem
 
Reg.datum: Nov 2008
Inlägg: 242
Lando Lando är inte uppkopplad
Medlem
Landos avatar
 
Reg.datum: Nov 2008
Inlägg: 242
Jag har ett allvarligt problem.

På en av mina sidor finns en tabell med upp mot 1,000,000 rader och jag måste rensa denna ibland för annars går hela sidan sjuuuuuukt segt.

Så min fråga är. Hur gör man för att lösa det? Man måste väll kunna ha 1,000,000 rader i en tabell? Google och dylikt är ju ha 1,000,000,0000,00000,000 (ni fattar poängen) utan några problem.

Problemet uppstår oftast när jag använder JOIN. Tex.

Kod:
SELECT u_name, g_date, g_text FROM guestbook 
JOIN user ON user.u_id=guestbook.g_writer 
LIMIT 10
Finns det nån bättre lösning än att använda JOIN?



Tacksam för svar!
Lando är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-01-25, 21:14 #2
WizKid WizKid är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Apr 2004
Inlägg: 618
WizKid WizKid är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Apr 2004
Inlägg: 618
Hur ser en explain ut för den queryn?
WizKid är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-01-25, 22:11 #3
Landos avatar
Lando Lando är inte uppkopplad
Medlem
 
Reg.datum: Nov 2008
Inlägg: 242
Lando Lando är inte uppkopplad
Medlem
Landos avatar
 
Reg.datum: Nov 2008
Inlägg: 242
Citat:
Originally posted by WizKid@Jan 25 2009, 22:14
Hur ser en explain ut för den queryn?
Menar du sånt här?

id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE wall ref w_wall,w_writer w_wall 4 const 232079 Using where; Using filesort
1 SIMPLE users eq_ref PRIMARY PRIMARY 4 xxxxx_se.wall.w_writer 1 Using where

?
Lando är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-01-25, 22:13 #4
rille77s avatar
rille77 rille77 är inte uppkopplad
Medlem
 
Reg.datum: Dec 2003
Inlägg: 213
rille77 rille77 är inte uppkopplad
Medlem
rille77s avatar
 
Reg.datum: Dec 2003
Inlägg: 213
Min första tanke är att tabellera inte är indexerade korrekt.
rille77 är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-01-25, 22:16 #5
Landos avatar
Lando Lando är inte uppkopplad
Medlem
 
Reg.datum: Nov 2008
Inlägg: 242
Lando Lando är inte uppkopplad
Medlem
Landos avatar
 
Reg.datum: Nov 2008
Inlägg: 242
Citat:
Originally posted by rille77@Jan 25 2009, 23:13
Min första tanke är att tabellera inte är indexerade korrekt.
Vi har index men det är mycket möjligt att det är fel gjort.

Vi har index så här:

wall.w_id PRIMARY
wall.w_writer INDEX
wall.w_wall INDEX

Jag vet inte hur INDEX funkar då min kollega konfigurerat detta men om någon har något tipps så vore jag jätte tacksam
Lando är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-01-25, 22:35 #6
WizKid WizKid är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Apr 2004
Inlägg: 618
WizKid WizKid är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Apr 2004
Inlägg: 618
Eftersom inte wall finns med i query förstår jag inte hur de kan komma upp i EXPLAIN.
WizKid är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-01-25, 22:38 #7
Landos avatar
Lando Lando är inte uppkopplad
Medlem
 
Reg.datum: Nov 2008
Inlägg: 242
Lando Lando är inte uppkopplad
Medlem
Landos avatar
 
Reg.datum: Nov 2008
Inlägg: 242
Citat:
Originally posted by WizKid@Jan 25 2009, 23:35
Eftersom inte wall finns med i query förstår jag inte hur de kan komma upp i EXPLAIN.
Beror på att queryn bara var ett exempel.
Lando är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-01-25, 22:40 #8
WizKid WizKid är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Apr 2004
Inlägg: 618
WizKid WizKid är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Apr 2004
Inlägg: 618
Det är ju mycket lättare att hjälpa dig om du visar en query som du har problem med.
WizKid är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-01-25, 22:49 #9
Landos avatar
Lando Lando är inte uppkopplad
Medlem
 
Reg.datum: Nov 2008
Inlägg: 242
Lando Lando är inte uppkopplad
Medlem
Landos avatar
 
Reg.datum: Nov 2008
Inlägg: 242
Okey här kommer ett exakt utdrag:

SELECT
users.user_id,
users.user_nick,
users.user_born,
users.user_sex,
users.user_img_with,
users.user_img,
users.user_last_active,
users.user_class,
wall.wall_date,
wall.wall_text,
wall.wall_id

FROM wall JOIN users ON users.user_id=wall.wall_writer WHERE wall_wall='1700' AND user_active='1' ORDER BY wall_date DESC LIMIT 0, 20;
# Time: 090122 20:57:34
# Query_time: 2 Lock_time: 0 Rows_sent: 20 Rows_examined: 208956
Lando är inte uppkopplad   Svara med citatSvara med citat
Oläst 2009-01-25, 22:55 #10
WizKid WizKid är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Apr 2004
Inlägg: 618
WizKid WizKid är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Apr 2004
Inlägg: 618
Skapar du ett index som är på wall_wall och wall_date så kommer den gå mycket fortare.
WizKid ä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 22:30.

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