Avatar billede kobie75 Nybegynder
08. juli 2010 - 11:06 Der er 3 kommentarer

Performance på MySQL

Hej MySQL eksperter,

Jeg har en MySQL server kørende med ca. 20 databaser. Det fungerer normalt godt.

Dog har jeg et spørgsmål mht. performance. Hvis jeg laver et stort select i en af databaserne hvor jeg har millioner af rækker - så 'kvæles' de andre databaser mens selected udføres. Er det på nogen måde muligt at udgå en sådan "exclusive" mode? Det gør ikke noget select'en tar' længere tid, den må bare ikke låse de andre databaser.

DB-type: MyISAM
Version: 5.0.27
Avg. number of SQL queries per second: 11
Avg. Keybuffer hitrate: 66%

Håber nogen kan hjælpe...

:-)
Avatar billede public2 Nybegynder
08. juli 2010 - 14:57 #1
Du kan prøve at ændre din database motor til InnoDB i stedet for MyISAM.

MyISAM benytter sig af table-locking, hvor InnoDB benytter sig af row-locking.

Noget andet er, og det ved jeg ikke om du har gjort, men hvis ikke, så vil det nok være en god idé at lave nogle indexes, især med den SELECT statement du kører. Så kan den hente indholdet (eller noget af indholdet) direkte fra intern hukommelse og undgå I/Os - eller undgå nogle I/Os.
Avatar billede arne_v Ekspert
20. juli 2010 - 03:48 #2
MyISAM kan vist ikke lave meget locking for SELECT !?!?
Avatar billede arne_v Ekspert
26. september 2010 - 21:21 #3
Noget fremskridt her?
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