2008-06-16, 13:33
  #1
Medlem
Sorkus avatar
Har en tabell som det går otroligt långsamt att hämta data från
http://img246.imageshack.us/img246/9479/mysqlip7.jpg

thumbnail är ~200kb
large är 200-2500kb
resten är små.

Den kommer att innehålla ett antal tusen poster och vara några gb stor.

Vad ska indexeras? Ska det ändras från blob till något? Hur ska jag bygga upp den?

Vill gärna lagra bilderna i mysql databasen, tycker det är mycket enklare att hantera än filer
Citera
2008-06-16, 13:50
  #2
Bannlyst
Det har nog inte så mycket att göra med indexering.. åtminstone inte så länge det inte är mycket data i databasen. Att lagra bilder däremot i tabellen bör/ska undvikas - är det något som tar tid så är det tyvärr denna teknik.

Det är väl lika enkelt att lagra bild i filsystemet och bara hänvisa till filnamn?
Citera
2008-06-16, 14:12
  #3
Medlem
Sorkus avatar
Är det så? Använder nämligen samma teknik med stora textdokument och där går det utmärkt. Saken är den att jag vill ha möjligheten att hindra användarna att hämta alla bilder, max 100 per dag eller något, så ingen glidare kopierar allt innehåll i ett nafs...

Första inlägget, välkommen hit!
Citera
2008-06-16, 18:29
  #4
Medlem
Citat:
Ursprungligen postat av Sorku
Har en tabell som det går otroligt långsamt att hämta data från
http://img246.imageshack.us/img246/9479/mysqlip7.jpg

thumbnail är ~200kb
large är 200-2500kb
resten är små.

Den kommer att innehålla ett antal tusen poster och vara några gb stor.

Vad ska indexeras? Ska det ändras från blob till något? Hur ska jag bygga upp den?

Vill gärna lagra bilderna i mysql databasen, tycker det är mycket enklare att hantera än filer
Jag skulle rekommendera att spara dem som filer istället för i databasen.

Vill du verkligen inte göra det är det väl index på de fält som faktiskt används i dina select-frågor för att begränsa datan du får tillbaka. Kan tänka mig att dessa borde vara id och user främst (Är det dock ett fåtal users som alla har väldigt många bilder behöver det inte hjälpa med index där dock). Om du ofta hämtar all data för en användare kanske det skulle snabba upp att sätta (user, id) till primary key för att få datan sorterad efter användare i första hand, men det är nog något du faktiskt bör testa innan du permanentar en sådan ändring.
Citera
2008-06-16, 21:49
  #5
Medlem
Protons avatar
Citat:
Ursprungligen postat av Teron
Jag skulle rekommendera att spara dem som filer istället för i databasen.

Vill du verkligen inte göra det är det väl index på de fält som faktiskt används i dina select-frågor för att begränsa datan du får tillbaka. Kan tänka mig att dessa borde vara id och user främst (Är det dock ett fåtal users som alla har väldigt många bilder behöver det inte hjälpa med index där dock). Om du ofta hämtar all data för en användare kanske det skulle snabba upp att sätta (user, id) till primary key för att få datan sorterad efter användare i första hand, men det är nog något du faktiskt bör testa innan du permanentar en sådan ändring.

Vad jag kan se av din skärmdump har du inte angivit ens enprimärnyckel för tabellen. Sätt en sådan på din autoinkrementerande id-kolumn?
Citera
2008-06-17, 08:13
  #6
Bannlyst
Citat:
Ursprungligen postat av Sorku
Är det så? Använder nämligen samma teknik med stora textdokument och där går det utmärkt. Saken är den att jag vill ha möjligheten att hindra användarna att hämta alla bilder, max 100 per dag eller något, så ingen glidare kopierar allt innehåll i ett nafs...

Första inlägget, välkommen hit!

Tack,
jag har testat bägge varianterna och att lägga bilder i databasen fungerar dåligt. Att begränsa tillgången till bilder torde inte bli något problem. Du lagrar namnet på bilden i din tabell - namnet kan med fördel skapas mha uniq("") (php). Apache sätter du upp så inte en besökare kan se innehållet i bibl (naturligtvis). Att försöka ladda hem bilderna med denna teknik är svårt - omöjligt - eftersom namnen inte är kända.

Om du har tumnagel o större bild kan de med fördel heta likadant - ändra bara path i filsystemet beroende på vilken bild du vill visa.

Det är skillnad på text o bild avseende datamängd. En liten tumnagel kan ju enkelt vara 20k, typ nästan 10 sidor a4 text.....
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in