Avatar billede dank Nybegynder
21. februar 2004 - 23:33 Der er 10 kommentarer og
1 løsning

design af database der har mange inserts

Nogen specielle hensyn man skal tage når der skal designes en database med (relativt) mange inserts (ca. 5-10 i sekundet)?

Evt. et setup med flere bokse?

Tabeltype?
Avatar billede Slettet bruger
22. februar 2004 - 07:25 #1
En ting at være opmærksom på, er at du ikke skal oprette et index, du ikke har brug for. Indexes gør det hurtigere at sæge, men langsommere at skrive.
Avatar billede arne_v Ekspert
22. februar 2004 - 09:28 #2
Hurtige diske !

:-)

sandbox har helt ret i at index koster lidt.

MyISAM er hurtigere end InnoDB (fordi InnoDB understøtter transaktioner
og dermed skal bruge en log).

Men database skrive performance er primært et spørgsmål om disk
systemet.

5-10 INSERT/sekund burde dog ikke være noget problem for en almindelig
disk.

Men ellers er 15000 RPM SCSI diske i RAID 0+1 gode til databaser !

(de koster også en bondegård, men ...)
Avatar billede dank Nybegynder
22. februar 2004 - 21:10 #3
5-10 inserts er tal fra d.d. Det *skal* kunne skaleres udover dette. Derfor mit spørgsmål, jeg fik bare ikke formuleret det ordentligt.

Prisen er (relativ) ligegyldig.. Vi kunne godt lave et system med f.eks. 3 striped diske i et mirror med 15.000 spins diske. Vi har flere bokse med 6 scsi pladser og serveraid kort med 256MB cache.. Det må være ok..

Boksene har dual xeon, men jeg ved ikke hvor meget CPU har af betydning i MySQL sammenhæng. Jeg kunne godt forstille mig at det næsten altid er et IO spørgsmål, og et par gig RAM og en ordentligt konfigureret my.cnf??? Eller er jeg helt galt på den?

Der ligger vel 15gb+ i /var/lib/mysql

Vi har godt nok overvejet at kigge på InnoDB pga af de roll-back features o.s.v. der findes... Men jeg ved ikke hvor "modent" det er på dette tidspunkt. Virker ikke som om der er så mange der benytter det.
Avatar billede arne_v Ekspert
22. februar 2004 - 21:20 #4
Du bør kunne gå meget over 5-10 INSERT/sekund med en standard IDE disk.

Med striped 15K RPM diske og RAID controller cache kan du gå uhyggeligt meget over.

Måske 100 INSERT/sekund og 500 INSERT/sekund henholdsvis. Men du bør nok teste
med dine data og din konfiguration.

INSERT bør vær IO bound med minimal CPU usage.

Det er mit indtryk at InnoDB er moden teknologi, men at man typisk vælger
MySQL for maximum performance for små penge og så vælger man MyISAM, har man
brug for transaktioner vælger man ofte en anden database end MySQL.
Avatar billede dank Nybegynder
22. februar 2004 - 21:30 #5
"vælger man ofte en anden database end MySQL..."

Hvilken da? :)
Avatar billede arne_v Ekspert
22. februar 2004 - 21:34 #6
Forskelligt. Men følgende er nok almindelige.

For penge: MS SQLServer, Sybase
Gratis: PostgreSQL, SAP DB (nu MySQL MAX)
Avatar billede dank Nybegynder
22. februar 2004 - 21:53 #7
MS SQL har vi nogen af...

... æv :)

Tak for hjælpen endnu engang.
Avatar billede arne_v Ekspert
22. februar 2004 - 21:57 #8
Jeg skal understrege at der også er folk som bruger MySQL InnoDB. Men det er
en ret lille del af den store flok af MySQL brugere.
Avatar billede dank Nybegynder
22. februar 2004 - 22:13 #9
Jeg må indrømme jeg ikke er den store databasehaj, men umiddelbart virker SQL2000 noget nemmere at belaste max fremfor f.eks. MySQL - joooee.. selvf. alt er relativt.. Men det virker nu bare sådan fra min side af bordet.
Avatar billede arne_v Ekspert
22. februar 2004 - 22:29 #10
Sikkert.

Men MS SQLServer kører altid med transaktions support. Det koster halvdelen af
performance i forhold til uden transaktions support.

MS SQLServer SQL dialekt kan meget mere end MySQL SQL dialekt - en masse queries
som kan være rigtigt hårde ved både IO og CPU load.

Der er prioriteret forskellige ting.
Avatar billede dank Nybegynder
22. februar 2004 - 22:32 #11
ms_sql kan vel også en pæn del ting.. som f.eks. sub selects o.s.v... Man MySQL flytter jo også egne grænser hele tiden. :)
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