Avatar billede jdlindstroem Nybegynder
12. marts 2001 - 18:37 Der er 1 kommentar og
2 løsninger

Hvordan tackler apache/mySQL mange brugere på en gang?

Hej,

Jeg vil lave en MySQL database og bygge den sammen med Apache/PHP. Det som jeg ikke forstår er, hvordan mySQL/Apache tackler samtidighedsproblemer.

Hvis 100 brugere på en gang connecter til min server og alle skal skrive/læse til den samme record i en tabel, hvad sker der så?

Hvad er princippet bag måden som apache/mySQL håndterer service af mange brugere på en gang?

Foregår det efter princippet: Brugerne henter deres respektive sider (fra apacheserveren) og så står de i kø (first in first out) for at skrive/læse i databasen (mySQL)?

Hvor kan jeg præcist læse mere om dette i manualerne? Please et link eller to.

På forhånd tak

Avatar billede knightdear Nybegynder
12. marts 2001 - 19:08 #1
MySQL klarer fint at læse simultant, men at skrive er der, hvor der opstår problemer... Det kan du klare ved at læse en tabel. Kig nærmere her:
http://www.mysql.com/doc/L/O/LOCK_TABLES.html
Selve manualen:
http://www.mysql.com/doc

KnightDear :o)
Avatar billede defrost Nybegynder
13. marts 2001 - 07:48 #2
I Mysql er alle updates/inserts atomic. D.v.s at der er kun én, der kan skrive i en tabel af gangen. Hvad knightdear skriver ovenfor er rigtigt nok, men er kun nødvendigt, hvis en bruger skal skrive i flere tabeller på EN gang. Skrivning i en enkelt tabel er ligesom at skrive

lock tables tablenavn write;
update tablenavn set....
unlock tables;


Så det er korrekt at brugere stå i kø (fifo) når de skal skrive i databasen. Der er sagtens flere, der kan læse på en gang (som knigtdear) også skriver.

Der er også andre steder i manualen, det kan betale sig at læse. Fx er det muligt at lave en \"insert delayed\", hvilken gør det, at set fra klientent side returnerer den insert med det samme, men den bliver ikke skrevet i databasen før der ikke er flere, der læser i den. Den er god at bruge hvis man fx skal skrive statistik i en tabel fra et website.

Der er også \"select high_priority\", der kører en select, selvom der står andre queries og venter på at kunne komme til at opdatere tabellen. Normalt er skrivning højere prioriteret end læsning.

Håber det gav lidt svar på dit spørgsmål.
Avatar billede jdlindstroem Nybegynder
13. april 2001 - 13:15 #3
Hej,

Jeg har netop i dag pr. e-mail d. 13/4 fået besked på at der var kommet svar. En måned efter, de faktisk er kommet? Whatever, tak for svarene ;)
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