Kom ihåg mig?

Optimering av mysqldatabas

 
Ämnesverktyg Visningsalternativ
Oläst 2010-07-19, 17:17 #11
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Citat:
Ursprungligen postat av studiox Visa inlägg
hur stora är tabellerna du söker i? 100 miljoner artiklar och en sökning tar 1ms är inte realistiskt imho
Jag misstänker att han menar 1 sekund. Testar jag sphinx mot ett index med 25M rader på ca 6GB på en server som är allt annat än välmående (och redan innan ganska slö) så rör det sig om svarstider på ~1s på en fritextsökning med ett gäng tusen träffar. Saker såsom prefix/infix-indexering, ordlängd, antal träffar osv spelar dock in rätt mycket.
Clarence är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-07-22, 23:09 #12
dAEks avatar
dAEk dAEk är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Dec 2006
Inlägg: 678
dAEk dAEk är inte uppkopplad
Mycket flitig postare
dAEks avatar
 
Reg.datum: Dec 2006
Inlägg: 678
Det var år sedan jag rörde MySQL men minns jag inte helt fel kan man använda kommandot "explain" för att låta motorn analysera frågornas execution plan. Med hjälp av execution plans kan man hitta flaskhalsarna även om man inte har så mycket data i databasen.
dAEk är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-08-17, 00:29 #13
terbon terbon är inte uppkopplad
Medlem
 
Reg.datum: Jul 2008
Inlägg: 69
terbon terbon är inte uppkopplad
Medlem
 
Reg.datum: Jul 2008
Inlägg: 69
En del optimering kan ju göras med hjälp av normalisera databasen med exempelvis metoder såsom BCNF och 4NF. Då kan du inkludera att skriva upp ER-diagram, samt functional dependencies.

Dock så snackar vi i detta fallet inte direkt om en 10 tabellers databas.

Senast redigerad av terbon den 2010-08-17 klockan 00:29 Anledning: typo
terbon är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-08-20, 20:00 #14
dAEks avatar
dAEk dAEk är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Dec 2006
Inlägg: 678
dAEk dAEk är inte uppkopplad
Mycket flitig postare
dAEks avatar
 
Reg.datum: Dec 2006
Inlägg: 678
Drygt en månad senare... hur gick det?
Fick du nån nytta av alla svaren?
dAEk är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-08-20, 22:43 #15
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Citat:
Ursprungligen postat av -Joel- Visa inlägg
Hej alla WN-are! Jag har hängt på forumet under rätt lång tid, och läst mycket intressant. Tack för alla tips!

Nu har jag en fråga. Hittills har jag bara gjort några mindre projekt som inte blivit så mycket med. Nu har jag börjat med ett (förhoppningsvis) större projekt, och jag har lite funderingar kring optimering av databasen:

Databasen innehåller en tabell över några tusen rader, som förändras. Över dessa "produkter" ska det köras fritextsökningar, som ska kunna hitta träffar mitt inne i "produktnamnen". Det är batchjobb med många sökord, tio- kanske hundratusentals. Sökorden är kopplade till användare, och jag misstänker att det kommer att finnas väldigt mycket dubbletter bland sökorden.

Nu till min fråga: är det värt att separera sökningarna från användarna för att slippa köra identiska sökningar? Då måste det till en extra tabell som kopplar ihop sökningarna med varje användare, med massa extra joins som följd. Dessutom ökar det komplexiteten i utvecklingen.

Kortfattat undrar jag alltså om fritextsökningar som letar genom hela strängen är så tidsödande att det motiverar en ökad komplexitet och tidsåtgång med en extra "jointabell"?

Tack på förhand!

Ps. Tips var jag kan hitta bra information om databaser mottages tacksamt.
Hur ser tabellstrukturen (datamodellen) ut så blir det lättare att se. Berätta gärna vad du lagrar i tabellen för fritextsökning och vad du vill åstadkomma. Det är många gånger helt avgörande för hur man bygger en skalbar lösning.
Conny Westh är inte uppkopplad   Svara med citatSvara med citat
Svara

Taggar
databas, mysql, optimering


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 
Ämnesverktyg
Visningsalternativ

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 16:11.

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