Kære gæst, velkommen til Tweak.dk. Hvis dette er dit første besøg her, bør du læse Hjælp. Her forklares i detaljer hvordan denne side fungerer. For at benytte alle funktionerne på denne side, bør du overveje at lade dig registrere. Benyt venligst registreringsformularen for at registrere her eller læs yderligere information om registreringsprocessen. Hvis du allerede er registreret, så log på her.

1

fredag, 27. april 2007, 00:00


Lige lidt forklaring, jeg vil gerne optimere Tweak.dk lidt på forsiden

alle forum tråde ligger i samme table, og som ses i neden stående kald skrives der board id = 10

som så er et specifikt board.

SELECT `topic` , `threadid`
FROM bb2_threads
WHERE `boardid` = '10'
AND threadid > '0'
ORDER BY lastposttime DESC
LIMIT 10

Problemet er at med dette kald får jeg de 10 seneste ud af board 10 men kaldet tager ca 0.03sek, i gennemsnit

Og da vi ca har 10 forskellige foraer på forsiden plus andre kald, bliver det 0.3 sekunder til bare at få informationer ud af dababasen så kommer selve "manipuleringen" bagefter..

Har siddet og leget lidt med indexes, men tror jeg gør det lidt forkert for jeg får INTET ud af det.

For at sammenligne bare en smule giver et kald

SELECT `topic` , `threadid`
FROM `bb2_threads`
WHERE `boardid` =10
LIMIT 10

ca 0.0005 sek

altså ca 60 gange hurtigere

men er umiddelbart ORDER BY lastposttime DESC der tager RØV længe...

Har overvejet om jeg bare skal tage det hele ud til PHP,en og lade den løbe det igennem ved hjælp af en "kedelig" algoritme

Håber på nogle gode svar

Intel I5 2500k | Gigabyte Z68 | 16GB Kingston | Radeon 6950 | 2xOCZ Vertex 3 120GB Raid 0 | OCZ 650W
27" (U2711) DELL | 24" (2408WFP) DELL | Ergotron LX Dual Side-by-Side

Canon 5DM2 | 16-35mm 2.8L | 24-70mm 2,8L | 85mm 1.2L USM II | 70-200mm 2.8L IS
Nogle Speedlites | PocketWizards

2

fredag, 27. april 2007, 11:47


Nu er jeg ikke så meget inde i det mysql halløj men du laver din limit efter din order by. Order den så ikke alle post i databasen og derefter kun henter de 10 ud.

Er det ikke muligt at lave den limit før du laver den order by på dit udtræk ??

| asus maximus VI Hero | i7 4770K | 2 x 8gb G.skill | Asus GTX 750 Ti OC |
Common sense is creativities biggest enemy

3

fredag, 27. april 2007, 12:03


I givet fald vil det bare give de 10 første og ikke de 10 seneste.

/ask

IBM t42 and IBM t23 still alive and kicking

4

fredag, 27. april 2007, 12:55


Citeret

Originally posted by jacobask
I givet fald vil det bare give de 10 første og ikke de 10 seneste.

/ask



Det har du da egentlig ret i :( Godt man lige er vågnet og halv skæv af medicin :(

| asus maximus VI Hero | i7 4770K | 2 x 8gb G.skill | Asus GTX 750 Ti OC |
Common sense is creativities biggest enemy

5

fredag, 27. april 2007, 13:38


Citeret

Originally posted by Axel
Lige lidt forklaring, jeg vil gerne optimere Tweak.dk lidt på forsiden

alle forum tråde ligger i samme table, og som ses i neden stående kald skrives der board id = 10

som så er et specifikt board.

SELECT `topic` , `threadid`
FROM bb2_threads
WHERE `boardid` = '10'
AND threadid > '0'
ORDER BY lastposttime DESC
LIMIT 10

Problemet er at med dette kald får jeg de 10 seneste ud af board 10 men kaldet tager ca 0.03sek, i gennemsnit

Og da vi ca har 10 forskellige foraer på forsiden plus andre kald, bliver det 0.3 sekunder til bare at få informationer ud af dababasen så kommer selve "manipuleringen" bagefter..

Har siddet og leget lidt med indexes, men tror jeg gør det lidt forkert for jeg får INTET ud af det.

For at sammenligne bare en smule giver et kald

SELECT `topic` , `threadid`
FROM `bb2_threads`
WHERE `boardid` =10
LIMIT 10

ca 0.0005 sek

altså ca 60 gange hurtigere

men er umiddelbart ORDER BY lastposttime DESC der tager RØV længe...

Har overvejet om jeg bare skal tage det hele ud til PHP,en og lade den løbe det igennem ved hjælp af en "kedelig" algoritme

Håber på nogle gode svar


Selvfølgelig tager order by lastposttime desc tid!! Forskellen på de to udtræk du laver er, at det ene er sorteret, det andet er ikke.


6

fredag, 27. april 2007, 15:12


Ville det måske være hurtigere at lave en count på den også tage de 10 højeste og derefter order dem ??

| asus maximus VI Hero | i7 4770K | 2 x 8gb G.skill | Asus GTX 750 Ti OC |
Common sense is creativities biggest enemy

7

fredag, 27. april 2007, 21:47


Det er et helvede når de ligger i samme tabel.. det kan ikke andet end tage tid at sortere dem.
Sad med samme problem på arbejdet den anden dag.. blot med små 8 mio rækker :(
Der kunne vi så dele dem op i flere tabeller.. men det går jo desværre ikke her.


8

fredag, 27. april 2007, 21:51


En løsning kunne selvf være en stored procedure.. den nyeste version af MySQL understøtter også dette.


9

fredag, 27. april 2007, 23:47


Hej Falsk, ja dem har jeg også overvejet, ligesom jeg også overvejer triggers... men sq ikke det store styr på dem

Thomas

Intel I5 2500k | Gigabyte Z68 | 16GB Kingston | Radeon 6950 | 2xOCZ Vertex 3 120GB Raid 0 | OCZ 650W
27" (U2711) DELL | 24" (2408WFP) DELL | Ergotron LX Dual Side-by-Side

Canon 5DM2 | 16-35mm 2.8L | 24-70mm 2,8L | 85mm 1.2L USM II | 70-200mm 2.8L IS
Nogle Speedlites | PocketWizards

10

lørdag, 28. april 2007, 12:22


Citeret

Originally posted by Axel
Hej Falsk, ja dem har jeg også overvejet, ligesom jeg også overvejer triggers... men sq ikke det store styr på dem

Thomas


Oplagt mulighed for at lære lidt ;)


11

lørdag, 28. april 2007, 13:11


hehe jaja er i gang, men min tid er tæmmelig presset i forvejen, og havde lidt håbet på nogle af i gutter vidste noget om det

Thomas

Intel I5 2500k | Gigabyte Z68 | 16GB Kingston | Radeon 6950 | 2xOCZ Vertex 3 120GB Raid 0 | OCZ 650W
27" (U2711) DELL | 24" (2408WFP) DELL | Ergotron LX Dual Side-by-Side

Canon 5DM2 | 16-35mm 2.8L | 24-70mm 2,8L | 85mm 1.2L USM II | 70-200mm 2.8L IS
Nogle Speedlites | PocketWizards

12

mandag, 30. april 2007, 15:02


:)
Ja det kræver jo desværre at ens host har den nyeste mysql, eller at man har egen server.
Jeg har ingen af delene.


13

mandag, 30. april 2007, 21:14


ikke mere undskyldning :D

http://www.chsoftware.net/en/useware/wos/wos.htm

tryk download -> no thanks -> i do not have - GO -> Apache2 MySQL5 PHP5 PHPMyAdmin

Nemt og kan kører fra en USB STIK :D smart :D bruger det selv.

Intel I5 2500k | Gigabyte Z68 | 16GB Kingston | Radeon 6950 | 2xOCZ Vertex 3 120GB Raid 0 | OCZ 650W
27" (U2711) DELL | 24" (2408WFP) DELL | Ergotron LX Dual Side-by-Side

Canon 5DM2 | 16-35mm 2.8L | 24-70mm 2,8L | 85mm 1.2L USM II | 70-200mm 2.8L IS
Nogle Speedlites | PocketWizards

Nyeste Videoer og Trailers

Indsend nyhed
Har du fundet en fed nyhed så indsend den så alle andre på Tweak.dk kan få glæde af den.