Avatar billede dontron Nybegynder
09. oktober 2003 - 01:44 Der er 19 kommentarer og
1 løsning

Kan MySQL klare en Table på 1.000 Gigabyte ?

Vi sidder og overvejder at flytte vores gæstebogssystem på jubii chat over på MySql, men vi er meget i tvivl om den ka klare det.

Gæstebog's tabellen (Logbook.dat) fylder nemli 155 Gigabytes og indeholder ca. 124 millioner rows på op til 8kb stykket.

Jeg ved MsSql og Oracle kan klare det, men hvordan har MySql det med så store datamængder?

Næste spørgsmål (det er her MsSql og Oracle står af) er at denne table får 500-1000 requests i sekundet (selects) i peak, hvordan vil MySql ha det med den slags?

Kender du evt. nogen som allerede kører ekstremt store databaser på MySql ville det også ku hjælpe os (hvis vi evt ka få lov at spørge dem om deres erfaringer)

På forhånd tak for hjælpen :-)

- DonTron
Avatar billede themaster Nybegynder
09. oktober 2003 - 01:58 #1
jeg må desværre skuffe jer.....jeg ville ikke behandle så store mængderdata i MySQL....
Jeg kan anbefale POSTsgrSQL, da det også er brugt til store dataservere med mange query´s på samme tid(Yahoo og LYCOS bruger bla. POSTsgrSQL)

//themaster
Avatar billede xyborx Nybegynder
09. oktober 2003 - 02:27 #2
Tja.. Ifølge MySQL's manual kan det kun (endda tvivlsomt) lade sig gøre på alpha-platforme:
http://www.mysql.com/documentation/mysql/bychapter/manual_Introduction.html#Table_size

Hvorvidt det rent faktisk kan fungere godt nok, og om det i det hele taget kan anbefales, kan jeg ikke svare på. :)
Avatar billede xyborx Nybegynder
09. oktober 2003 - 02:29 #3
Hmm.. Læste lige lidt mere af manualen. Det behøver så ikke nødvendigvis at være alpha. Men alligevel..
Avatar billede dontron Nybegynder
09. oktober 2003 - 02:31 #4
Hvor stor en table ville i turde lade MySql klare før i valgte at skifte til noget andet?

og hvad ville i skifte til hvis det nu ikke må koste M$ priser
Avatar billede xyborx Nybegynder
09. oktober 2003 - 02:38 #5
Jeg har ikke som sådan nogen erfaring med store databaser.. Jeg vil tro at det højeste jeg har haft, var et par hundrede MB, da jeg brugte den som logserver for en Counter-Strike server. Fungerede fint. En anelse langsommere end de små (xxx kb) tabeller jeg er vant til, men stadig acceptabelt.
Min "mentale" grænse for hvor meget data jeg vil lade MySQL håndtere, ligger nok på 1 GB. Måske 2. Hvad jeg så ellers vil bruge, er et godt spørgsmål. Måske POSTsgrSQL, som themaster nævnte. Aner det ikke :)
Avatar billede dawin_dk Nybegynder
09. oktober 2003 - 02:59 #6
Umiddelbart ville jeg da forsøge mig med en mySQL ... det skulle da ik tage mange timer at sætte den op og sætte den til at køre data fra den ene server til den anden ...

- og så kunne det jo være op til en test. Linux folk sværger jo til at mySQL er så meget bedre end alt MS nogensinde kunne finde på at lave. Jeg ville da gerne høre resultatet af testen :)
Avatar billede dontron Nybegynder
09. oktober 2003 - 03:06 #7
MsSql er bedre til de fleste ting, men hvis jeg skulle købe licenser til vores 52 quad processor database servere sååå... $$$$ hehehe :-)

Vi vil faktisk helst bruge MySql og vi er igang med at teste, men vores test servere har ikke så store diske som prod serverne, og vi har ikke 10.000 brugere der ka sidde og sende rigtige requests (som de jo gør på prod)
Avatar billede dawin_dk Nybegynder
09. oktober 2003 - 03:13 #8
Nej, men et stresstest-tool burde kunne sætte godt gang i det. Men har den med bare 1 bruger en responstid der nærmer sig 1 sekund så skal der ik meget matematik til at finde ud af den ik kan klare det :)
Avatar billede ohmish Nybegynder
09. oktober 2003 - 14:38 #9
hvordan ved man at Yahoo og Lycos bruger POSTsgrSQL?
Avatar billede themaster Nybegynder
10. oktober 2003 - 17:12 #10
olmish >> har læst en artikel i et tysk tidskrift om store dataservere, der var der et eksempel på dataservere over 50 gb og de brugte LYCOS og Yahoo som eksempler
Avatar billede arne_v Ekspert
10. oktober 2003 - 20:57 #11
Skal vi lige slå fast at MS SQLServer og Oracle sagtens kan klare
1000 SELECT i sekundet.

Det er kun et spørgsmål om hvorvidt I vil betale for den rette
hardware.

Der er TPC-C resultater for de to på ca. 800000 transaktioner i minuttet
(det er over 10000 opdateringer i minuttet).

Men pris-skiltet lyder altså på ca. 5 millioner dollar.

For 1000 SELECT/sekund = 60000 SELECT/minut og 1 TB data skal I vel have
for ca. 50000 dollar (1-2 Xeon CPU, 2-4 GB RAM, RAID, 2 x 15 SCSI diske
72 GB U320 15000 RPM, software).

Eller noget i den stil. Jeg er ikke ekspert i DB konfiguration.

Jeg er sikker på at der er masser af leverandører der gerne vil give jer
et tilbud.

Oracle og SQLServer kan klare opgaven.

Nemt endda.

Samme gælder iøvrigt DB2 og Sybase.

Kan MySQL klare opgaven ?

Principielt ja.

MySQL kan klare så stor en tabel.

MySQL performer normalt glimrende, så på samme hardware vil jeg formode
at den performer lige så godt som de andre.

Men:
  - hvor nemt er det at tilføje nye diske ?
  - hvor nemt er det ar lave backup ?
  - hvor nemt er det at recovere fra en fejl ?

Jeg ville ikke vælge MySQL til den opgave.
Avatar billede arne_v Ekspert
10. oktober 2003 - 21:00 #12
Her er Arnes tommelfinger regel for database valg:

hvis du kan printe hele databasen på papir og sætte i et ringbind {
  vælg MS Access eller lignende
} ellers hvis data kan være på en disk {
  vælg MySQL eller lignende
} ellers hvis du kan tælle dine diske på to hænder {
  vælg MS SQLServer eller Sybase
} ellers {
  vælg Oracle eller DB2
}

Og det er lidt fjollet fordi ofte er der andre forhold end
lige præcis database størrelsen der er afgørende.
Avatar billede -mundi- Nybegynder
10. oktober 2003 - 21:03 #13
Måske skulle man overveje at arkivere nogen af de gamle indlæg ? :-) Det er vel ikke alle 155 gb der er i brug hele tiden.
Avatar billede dontron Nybegynder
11. oktober 2003 - 19:35 #14
Auch! 5 mill kr! hehe.

Arkiveringen er også den løsning vi har valgt, men det ændrer stadig ikke på at selve arkivet vil vokse til extrem størrelse.

Vi har lige testet en MsSql løsning med 2 DB servere 1 master og 1 slave, samt en 20GB gæstebogs tabel. Et opslag tog mellem 10 og 20 sek da der var 200 brugere online - what a bummer :-(

Gad vide om microsoft ikke vil lave en deal... De giver os en flok gratis MsSql licencer, og vi lover ikke at svine bill gates til :-)
Avatar billede arne_v Ekspert
11. oktober 2003 - 20:03 #15
Det afgørende ved den slags database løsninger er næsten altid diskene.

Hurtige diske og mange diske er essentielt. Du får aldrig god database
performance på en 240 GB IDE disk 7200 RPM.

Så er det naturligvis også vigtigt at databasen er designet rigtigt
(index) og at serveren er konfigureret rigtigt (cache).
Avatar billede dontron Nybegynder
11. oktober 2003 - 20:38 #16
Harddiske er ret hurtige, der er et RAID 5 med en flok rigtigt dyre 15K/RPM SCSI diske i.

Cache virker fint fordi den performer fint nok de forste 20 minutter, men så falder det også drastisk.
Avatar billede arne_v Ekspert
11. oktober 2003 - 21:04 #17
RAID 5 giver ikke optimal performnace. Det kræver RAID 0+1.

Det lyder lidt mærkeligt at den kører fint i 20 minutter og så
falder performance.

Det antyder en fejl/uhensigtsmæssighed i MySQL.
Avatar billede dontron Nybegynder
11. oktober 2003 - 21:06 #18
det ser nærmere ud som om cache er fyldt - der er kun 2GB ram i maskinerne.
Avatar billede arne_v Ekspert
11. oktober 2003 - 22:07 #19
Det tror jeg ikke er forklaringen.

Hvis det er database cache der er afgørende så vil man forvente
faldende svartider indtil cachen er fyldt op og derefter konstante
svartider. Ved konstant jævnt fordelt load.

Var I CPU bound eller IO bound ?

Hvor stor en connection pool brugte i ?
Avatar billede dontron Nybegynder
11. oktober 2003 - 22:13 #20
Uha, nu kommer jeg ud på dybt vand. Der skal jeg lige ha fat i udviklerne. Jeg er kun en stakkels inkompetent chef der ka lidt ASP :-)
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
Computerworld tilbyder specialiserede kurser i database-management

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