![]() |
Hur stor är en stor databas?
Hur stor är en stor databas?
Jag är medveten om att frågan är flummigt ställd, men jag undrar vart gränsen går då det börjar gå lite tungt att göra lookups via id. "Tungt" definierar jag som den tid som krävs för att en webbsida som använder databasen ska kännas långsam. Rör det sej som 1 miljon rader, 10 miljoner? 100? Vi kan anta att det är en MySQL server. Ett svar mellan tummen och pekfingret duger fint |
Det är svårt att räkna storlek utifrån antal rader eftersom det bero på hur mycket data som en rad innehåller. 100 rader i en databas kanske väger 1Mb medan samma antal rader i en annan database väger 10Mb.
Det är väldigt svårt att säga hur stor en stor databas är. Hur långt är ett snöre? |
Om du använder Index så finns det nog ingen riktig gräns, ett par miljoner rader är ju inga större problem utan fet hårdvara. Men om du har MER än ETT index och dessutom söker på FLERA saker så kan det naturligtvis ta MER tid framförallt om du gör många JOINS.
|
Citat:
|
Citat:
Jo, det går ju snabbt om man söker med index. Kanske dumt av att mej att skriva så. Men låt säga att jag vill hitta ett index utifrån en annan nyckel som är på strängformat. Är det någon som har erfaranhet om detta? Jag har aldrig haft någon stor databas så nu inför ett kommande projekt behöver jag veta hur mycket av datat som jag kan spara på. Förtillfället gör jag runt 10-20.000 insättningar per dag. Jag är ute efter svar likande "Jag hade en databas som tillslut blev ohanterbar pga... och den var av storleken ~x cirka y records" |
Jag hade en tabell som drog iväg mot 4,5 miljoner rader, inga problem att använda med ett index på det. Nu har jag städat så det endast är 60 -70 000 rader (som är mer rimligt för den tabellen).
I jobbet har vi kunder med tabeller uppåt 10 miljoner rader utan problem med rätt indexering. På tidigare arbetsplats har de en databas som totalt växer med ca 100GB per månad, inga problem med rätt indexering. Nu pratar jag sql server. |
Om du absolut ska ha en siffra för antal rader så skulle jag säga att upp till 100 miljoner inte är några problem.
Men som alla andra redan påpekat så är det en mängd faktorer som spelar in. |
min svarsdatabas på trivia.se har över 20 miljoner rader och den blev fett slö ganska snabbt innan jag lärde mig vad index var för något :D
|
Generellt vad man kan säga är att mysql tycker inte om databaser med många tabeller (säg några miljoner), bättre isf med många databaser med få tabeller, eftersom mysql försöker cacha hela databaser och inte cacha de vanligast använda tabellerna. Med oracle tex, spelar detta ingen roll. Men du bör ju självklart köra databas cachning på fil eller om du klustrar webben, bör du köra en central memcached server för att cacha mysql frågor.
|
Tack för många bra svar! Nu har jag en idé om vad som är hanterbart
|
Det beror ju rätt mycket på hårdvaran också vad som blir jobbigt ;) Förvånansvärt lite data kan bli ett förvånansvärt stort problem har jag noterat.
|
Citat:
|
Citat:
|
Kör själv med index på tabeller som har runt 20 miljoner rader och utan index så hade det aldrig fungerat.
|
Citat:
|
Jag har ett projekt där jag har några tabeller som har några hundra miljoner rader.
För att lösa problemet med joina mellan hundramiuljnerraderstabeller som dessutom kan ge miljoner rader i resultat så gjorde jag en "summary table" där jag förjoinade/avnormaliserade datan. Detta gjorde 10sekundersqueryn till subsekundsquesyn. För att ytterligare snabba upp saker sorterar jag datan efter den key jag vill ha datan ut vilket gör att resultaten kan fås snabbare pga av att hårddiskens läshuvud inte behöver flyttas lika frenetiskt för att komma till rätt data. Jag använder Linux och MySQL. Och jag har nyligen dunkat in en 160GB Intel SSD vilket gav otroligt prestandaförbättring på det mesta. |
Citat:
2. Av ren nyfikenhet, vad är det för typ av data du lagrar som behöver så många rader? |
Citat:
|
Citat:
Jag tror myisamchk kan sortera datan efter en nyckel fast jag körde sorteringen utanför MySQL med det gamla hederliga GNU Sort :) 2. DNSDigger.com - Jag sparar alla domäners IP-nummer så jag kan se vilka domäner som finns hostade vart osv. |
Alla tider är GMT +2. Klockan är nu 21:44. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson