FAQ |
Kalender |
![]() |
#1 | |||
|
||||
Medlem
|
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 Tacksam för svar! ![]() |
|||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Mycket flitig postare
|
Hur ser en explain ut för den queryn?
|
||
![]() |
![]() |
![]() |
#3 | |||
|
||||
Medlem
|
Citat:
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 ? |
|||
![]() |
![]() |
![]() |
#4 | |||
|
||||
Medlem
|
Min första tanke är att tabellera inte är indexerade korrekt.
|
|||
![]() |
![]() |
![]() |
#5 | |||
|
||||
Medlem
|
Citat:
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 ![]() |
|||
![]() |
![]() |
![]() |
#6 | ||
|
|||
Mycket flitig postare
|
Eftersom inte wall finns med i query förstår jag inte hur de kan komma upp i EXPLAIN.
|
||
![]() |
![]() |
![]() |
#7 | |||
|
||||
Medlem
|
Citat:
|
|||
![]() |
![]() |
![]() |
#8 | ||
|
|||
Mycket flitig postare
|
Det är ju mycket lättare att hjälpa dig om du visar en query som du har problem med.
|
||
![]() |
![]() |
![]() |
#9 | |||
|
||||
Medlem
|
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 |
|||
![]() |
![]() |
![]() |
#10 | ||
|
|||
Mycket flitig postare
|
Skapar du ett index som är på wall_wall och wall_date så kommer den gå mycket fortare.
|
||
![]() |
![]() |
Svara |
|
|