Avatar billede The Real Yoda Juniormester
23. juli 2013 - 16:33 Der er 10 kommentarer og
1 løsning

Langsomme simple mysql updates

Hej Eksperter


Har en tabel med id,domain,tidspunkt
der er i 2400 records
tabellen er innodb

id er autonummeret og unik, domain er indexeret

når jeg laver

update tabelnavn set tidspunkt='20130723163000' where domain='testdomain.dk'

Så kan det tage op til 30 sekunder..
mysql slow querylog siger at lock_time er 0.000031
Så det er jo ik fordi den er låst


Er der nogen der har en ide om hvad der kan være galt?
Avatar billede MadsHaupt Juniormester
23. juli 2013 - 19:20 #1
Hvor maget ligger der i din database af for eksempel billeder, eller andre filer, eller hvor mange inputs er der i din database?.
Avatar billede arne_v Ekspert
24. juli 2013 - 05:18 #2
Koerer der andet paa den database?
Avatar billede The Real Yoda Juniormester
24. juli 2013 - 16:16 #3
#2 Det er en Debian - Godt nok er det en virtuel maskine der kører i et server 2008 cluster.. Den er tildelt 8 gigabyte ram og 4 kerner.. Den er tildelt sine egne SAN diske 3 stk 15000 rpm i raid 5.

#1 Der ligger ingen billeder og filer i databasen - kun tekst.
#1 med inputs, mener du da inserts ? i denne tabel er der måske en insert om ugen .. måske 3-4 pr. uge max. Men updaten bliver kørt nogle gange i minuttet.. (har sat den til at kun bliver kørt hver 10. gang den burde blive kørt for undgå det hele bliver skudt i sænk..

ektra info:
næsten alle andre querys er fint hurtige - andre updates er også uden problemer..

Vil tro der udføres omkring 12.500.000 sql kald i døgnet ..
i peak periode ligger den på 1.500.000 sql kald i timen..

Ud over tidligere nævnte sløve update er også en ..

id(autonumm,unik) vist(int 11) ikke indexeret...

update visninger set vist = (vist+1) where id = 7

Denne er sløv i en tabel med 8 records..
Det virker helt åndsvagt at det skulle være så tungt..
Avatar billede MadsHaupt Juniormester
24. juli 2013 - 20:50 #4
Hvis der rigtig rigtig mange der bruger den samme tabel inden for kort tid eller der er rigtig rigtig mange inserts, så køre det langsomt.

Jeg har rindet lidt på dine tal, og 12.500.000 sql kald i døgnet er lig med cirka 14 sql kald i sekundet - 0,06912 sekunder i mellem hvert sql kald, og 1.500.000 sql kald i timen er lig med cirka 41 sql kald i sekundet - 0,024 sekunder i mellem hvert sql kald.
Avatar billede The Real Yoda Juniormester
24. juli 2013 - 21:49 #5
#4 ja de tal har jeg også regnet ud..

Men i samme DB server er omkring 600 databaser..
De ca 300 er ens i struktur og har 220 tabeller hvor af den ene tab er som jeg nævner i indlæg 3 ..
Og den som er i det oprindelige spørgsmål er der kun en af i en tabel..
I begge tilfælde er det kun updates der er sløve og ikke inserts.
Avatar billede MadsHaupt Juniormester
25. juli 2013 - 10:38 #6
Jeg tror faktisk at inserts ikke kræver lige så meget energi som updates kræver, fordi når man indsætter så skal den jo bare tilføje, men hvis man skal opdater så skal den jo ført finde den, den skal opdater og ført bagefter kan den opdater.
Avatar billede The Real Yoda Juniormester
25. juli 2013 - 19:32 #7
Det kan meget vel være - men der er en stor del af de millioner sql kald som er updates - det er bare kun de to slags der er nævnt her som der er problemer med .. der er andre som er mere avanceret som tager meget kortere tid... så der må være noget specielt ved dem her..
Avatar billede MadsHaupt Juniormester
27. juli 2013 - 14:48 #8
Jeg tror ikke det er noget med om de er avanceret eller ag, det er noget med hvor mage sql kald der er, du kan prøve at lave en undersøgelse om hvor mange sql kald der er på de avancerede, i forhold til dem der ikke er så avancerede, fordi jeg tror nemlig at der er så mange sql kald på den tabel du nævnede så serveren ikke helt kan følge med, fordi hvis serveren ikke helt kan nå at opdatere eller indsætte, så vil de sql kald jo stå i kø.
Avatar billede The Real Yoda Juniormester
30. august 2013 - 12:40 #9
synes ikke rigtigt jeg har fået det løst, men hvis i vil ha point må i lige lægge svar
Avatar billede arne_v Ekspert
31. august 2013 - 04:11 #10
ikke denne gang
Avatar billede MadsHaupt Juniormester
04. september 2013 - 17:06 #11
svar
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