/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
mange opslag i mysql database i sekundet
Fra : Morten Graae


Dato : 11-09-10 15:55

Hej jeg har en phpside hvor ca. 100 bruger skal tjekke om en bestemt
datapost er ændret i min mysql database.

I stedet for at hver bruger har en "ajax" knap der opdatere en div for
at give besked om dataposten opdateret.

Kan jeg i stedet med "ajax" blot tjekke en gang i sek. for at se om
dataposten er ændret.

Mit hovedspørgsmål er nok i bund og grund hvor meget jeg belaster jeg
mysql databasen (hos one.com) ved at lade 100 brugere tjekke min mysql
datapost er opdateret.

De 100 brugere vil belaste med 1 opslag i sek. i ca 5 min. pr 20 min.
vil det være et problem.

hvis ikke, hvor går grænsen så?

mvh
Morten Graae

 
 
Keld Rosenkrantz (12-09-2010)
Kommentar
Fra : Keld Rosenkrantz


Dato : 12-09-10 08:15

On Sat, 11 Sep 2010 14:55:25 -0700 (PDT), Morten Graae
<morten.graae@gmail.com> wrote:

>Hej jeg har en phpside hvor ca. 100 bruger skal tjekke om en bestemt
>datapost er ændret i min mysql database.
>
>I stedet for at hver bruger har en "ajax" knap der opdatere en div for
>at give besked om dataposten opdateret.
>
>Kan jeg i stedet med "ajax" blot tjekke en gang i sek. for at se om
>dataposten er ændret.
>
>Mit hovedspørgsmål er nok i bund og grund hvor meget jeg belaster jeg
>mysql databasen (hos one.com) ved at lade 100 brugere tjekke min mysql
>datapost er opdateret.
>
>De 100 brugere vil belaste med 1 opslag i sek. i ca 5 min. pr 20 min.
>vil det være et problem.
>
>hvis ikke, hvor går grænsen så?
>
>mvh
>Morten Graae
Det burde ikke være noget problem hvis MySQL serveren er optimeret
rigtigt.
Men...hvorfor lave de opslag på en database du kunne også for
performance, her tænker jeg især din egen sides gøre noget andet..
Hver gang dataposten ændres laves/opdateres en fil på serveren med
f.eks tidspunkt for sidste ændring, denne fil checkes så i stedet.
--
Keld Rosenkrantz
Få dit gratis webhotel på www.splinternet.dk
Selvfølgelig med fuld support samt flere
muligheder end du betaler for andre steder

Martin (12-09-2010)
Kommentar
Fra : Martin


Dato : 12-09-10 23:14

On 11-09-2010 23:55, Morten Graae wrote:
> Hej jeg har en phpside hvor ca. 100 bruger skal tjekke om en bestemt
> datapost er ændret i min mysql database.
>
> I stedet for at hver bruger har en "ajax" knap der opdatere en div for
> at give besked om dataposten opdateret.
>
> Kan jeg i stedet med "ajax" blot tjekke en gang i sek. for at se om
> dataposten er ændret.
>
> Mit hovedspørgsmål er nok i bund og grund hvor meget jeg belaster jeg
> mysql databasen (hos one.com) ved at lade 100 brugere tjekke min mysql
> datapost er opdateret.
>
> De 100 brugere vil belaste med 1 opslag i sek. i ca 5 min. pr 20 min.
> vil det være et problem.
>
> hvis ikke, hvor går grænsen så?

MyISAM er lidt dårligt bygget op hvis du skal skrive til tabellen, da
MyISAM er bygget til at låse HELE tabellen hvis der er 1 opdatering igang.

Så det vil sige hvis 2 bruger vil opdater på samme tid, så vil nummer 2
bruger blive låst ude og vil skulle vente dobbelt så langtid som nummer 1.

Her er innoDB lige modsat da den låser 1 række og altså ikke en tabel så fx.

UPDATE tabel ... WHERE id = $id
så er det kun den ene række der bliver låst med innoDB hvor imod med
samme men med MyISAM type, så vil hele "tabel" være låst.

Hvis du derimod kun læser fra tabellen, SELECT ... FROM tabel så er
MyISAM langt hurtigere end innoDB.


Hvor grænsen går
Der er et par variabler man kan se på i phpmyadmin, du kan dog ikke
ændre nogle af dem hos one.com - jeg kender ingen steder hvor man kan
ændre disse, hvis man ikke har sin egen (virtuelle)server

fx.
max connections
query cache limit
Læs MEGET mere på
<http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html>

Det du vil opleve ved for mange connections til din database er fx.
1: De vil få en php error "too many connections to database"
2: MEGET lange svartider
3: Timeouts
4: internal server error

HVIS det skulle blive et problem, så kunne du evt. lave en fil med et
timestamp som enten indhold eller navn, så behøver du slet ikke
databasen

Det er MEGET langtid siden jeg har været kunde hos one.com, så hvad
deres regler (muligvis kun interne regler) siger om max connections til
databasen finder du muligvis ud af hvis de sender en besked, eller dit
domæne bliver lukket.

Søg
Reklame
Statistik
Spørgsmål : 177579
Tips : 31968
Nyheder : 719565
Indlæg : 6409073
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste