Avatar billede cht22 Professor
09. november 2016 - 14:04 Der er 6 kommentarer og
2 løsninger

Er det muligt at sortere MySQL databasens indhold på forhånd?

Jeg vil gerne sortere databasens indhold på forhånd så forsiden hentes hurtigere er det muligt?

Det er ikke ORDER jeg mener, det bruger jeg allerede, samt LIMIT. Og LIMIT virker hurtigst når det er de første poster i databasen der hentes. Jeg har prøvet at søge efter PREORDER, men har ikke rigtig kunne finde noget brugbart.

Det er følgende side det drejer sig om:
http://www.cthyge.dk

http://www.computerworld.dk/eksperten/spm/1013667
Avatar billede arne_v Ekspert
09. november 2016 - 14:17 #1
Der er ikke rigtigt noget som hedder foerst i en relationel database.

Hvordan ser din query ud til forsiden?

Er der index paa alle ORDER BY og WHERE felter?
Avatar billede cht22 Professor
09. november 2016 - 14:27 #2
Min query ser sådan ud:

$limit = " LIMIT ".($qpage-1)*$set_page_hits." , ".$set_page_hits;

$select = "SELECT * FROM $set_table_prefix" . "_foto_gallery_files where type='file' order by type desc,ID".$limit;

Men jeg vil gerne ændre det til dette når jeg får mulighed for det:

$select = "SELECT * FROM foto_gallery_files where type='file' order by type desc,varorder".$limit;

Hvor varorder i tabellen angiver rækkefølgende af billederne.

Der er kun index på ID tror jeg nok. Min tabel ser sådan ud:

$sql = "CREATE TABLE foto_gallery_files
(
ID int NOT NULL AUTO_INCREMENT,
PRIMARY KEY(ID),
name varchar(255),
type varchar(50),
parentid INT,
size INT,
width INT,
height INT
)";
Avatar billede arne_v Ekspert
09. november 2016 - 14:35 #3
Proev med index paa TYPE
Avatar billede cht22 Professor
09. november 2016 - 19:25 #4
Jeg må indrømme jeg er ikke helt sikker på hvordan INDEX skal bruges.

Nu har jeg tilføjet kolonnen varorder

Bruger nu:
$select = "SELECT * FROM foto_gallery_files where type='file' order by type desc,varorder".$limit;

Har prøvet med:
$sql = "ALTER TABLE foto_gallery_files ADD INDEX (type,varorder)";

Kan ikke se nogen forskel med page load tiden som er < 0.0043 sekunder, hvor der nu er 94 billeder (dvs. 94 poster i tabellen). Det kan være det ikke bliver noget problem selvom det gerne skal kunne bruges med mange poster. Har også prøvet med 2000 billeder og det giver samme resultat. Men jeg vil også gerne have at det virker hvis man lægger det over på en langsommere server og evt. med flere billeder.
Avatar billede arne_v Ekspert
09. november 2016 - 20:09 #5
CREATE INDEX type_ix ON foto_gallery_files (type)
Avatar billede arne_v Ekspert
09. november 2016 - 20:13 #6
Hvad er VARORDER?
Avatar billede cht22 Professor
19. november 2016 - 15:54 #7
Jeg er ikke helt med på hvad du mener med hvad varorder er. Det er af typen int og angiver rækkefølgen af billederne. Men det skrev jeg jo også tidligere. Så sammen med parentid, som angiver hvilken mappe der er tale om, så er det rækkefølgen i den valgte mappe. Det er dog kun parentid=0 der bliver brugt indtil videre.
Avatar billede arne_v Ekspert
19. november 2016 - 21:01 #8
saa skal der ogsaa index paa varorder
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester