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

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Kvæler jeg min mySql-server?
Fra : Jeppe Vesterbæk


Dato : 07-05-02 18:42

Hvor mange insert-statements kan mySql klare hurtigt efter hinanden? Jeg er
ved at lave en simpel simulering over et trafikkryds i java. Blandt andet
bilers ankomsttider skal logges i en mySql-database, jeg har lavet. Skal der
f.eks. genereres 20 biler pr minut i hver retning og simuleringen skal
strække sig over 60 minutter, bliver dette til 20 x 4 x 60 = 4800 insert
statements lige efter hinanden.

Dette ser ud til at kvæle min mySql-server (kører lokalt på min computer).
Den når kun at indsætte onkring 2000 rækker. Det virker fint hvis jeg f.eks.
kun vælger at lade simuleringen strække sig over 1 minut (80 inserts).

Jeg får følgende fejl i java:
java.sql.SQLException: Cannot connect to MySQL server on localhost:3306. Is
there a MySQL server running on the machine/port you are trying to connect
to? (java.net.BindException)

Kvæler jeg min mySql-server? Hvis ja, hvad kan jeg gøre?

/Jeppe

X-POST til dk.edb.database og dk.edb.programmering.java da jeg ikke er helt
sikker på om problemet ligger i java-delen eller hos MySql
X-FUT: dk.edb.database



 
 
Thorbjørn Ravn Ander~ (07-05-2002)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 07-05-02 18:44

"Jeppe Vesterbæk" <jeppeojeppe_ingenspamtak_@hotmail.com> writes:

> Dette ser ud til at kvæle min mySql-server (kører lokalt på min computer).
> Den når kun at indsætte onkring 2000 rækker. Det virker fint hvis jeg f.eks.
> kun vælger at lade simuleringen strække sig over 1 minut (80 inserts).

Husker du at lukke forbindelsen når du er færdig med den?

Overvej at brug connection pooling istedet - det er dog ikke så
vigtigt med MySQL da den er hurtig til at oprette forbindelser.

--
Thorbjørn Ravn Andersen
http://homepage.mac.com/ravn

Jeppe Vesterbæk (07-05-2002)
Kommentar
Fra : Jeppe Vesterbæk


Dato : 07-05-02 18:51

> Husker du at lukke forbindelsen når du er færdig med den?

Ja, men jeg har fundet ud af, at den måde jeg har lavet mit java sikkert er
ganske usmart. Jeg har lavet en klasse som styrer kontakten med databasen.
Problemet må være, at jeg for hvert kald til denne klasse (dvs. v. hver
sql-kommando) åbner og lukker for databaseforbindelsen. (Jeg er meget, meget
ny til java, så dette havde jeg ikke lige gennemskuet.)

/Jeppe



Nis Jorgensen (07-05-2002)
Kommentar
Fra : Nis Jorgensen


Dato : 07-05-02 19:15

On Tue, 7 May 2002 19:42:12 +0200, "Jeppe Vesterbæk"
<jeppeojeppe_ingenspamtak_@hotmail.com> wrote:

>Hvor mange insert-statements kan mySql klare hurtigt efter hinanden? Jeg er
>ved at lave en simpel simulering over et trafikkryds i java. Blandt andet
>bilers ankomsttider skal logges i en mySql-database, jeg har lavet. Skal der
>f.eks. genereres 20 biler pr minut i hver retning og simuleringen skal
>strække sig over 60 minutter, bliver dette til 20 x 4 x 60 = 4800 insert
>statements lige efter hinanden.

Kan du ikke noejes med een insert, som indsaetter 4800 raekker? Evt
kombineret med random-funktioner og/eller en tabel indeholdende de
foerste 10000 heltal.

--
Nis Jorgensen
Amsterdam

Please include only relevant quotes, and reply below the quoted text. Thanks

Jeppe Vesterbæk (07-05-2002)
Kommentar
Fra : Jeppe Vesterbæk


Dato : 07-05-02 19:43

> Kan du ikke noejes med een insert, som indsaetter 4800 raekker? Evt
> kombineret med random-funktioner og/eller en tabel indeholdende de
> foerste 10000 heltal.

Nej, de (bil-objekterne) bliver ikke dannet på samme tid. Der skal desuden
også indsættes andre store mængder (ex. afgangstid når bilen kører (anden
tabel)).

Jeg kan ikke umiddelbart finde ud af at åbne connection til databasen kun
når programmet startes og lukke til sidst. Havde det nu bare været asp/php,
så havde jeg bare inkluderet db_open i starten af hver fil og db_close i
slutningen .

/Jeppe





Peter Brodersen (07-05-2002)
Kommentar
Fra : Peter Brodersen


Dato : 07-05-02 19:32

On Tue, 7 May 2002 19:42:12 +0200, "Jeppe Vesterbæk"
<jeppeojeppe_ingenspamtak_@hotmail.com> wrote:

>Hvor mange insert-statements kan mySql klare hurtigt efter hinanden?

Normalt "så mange, det skal være". En almindelig eksport til en
mysql-server består netop i at kaste en tekstfil med en større mængde
create/insert-statements efter hinanden.

Som du selv er inde på, lader det til at det er "åbn/luk
connection"-tingen, der er med til at belaste. Du kan evt. tjekke en
status på din mysql-server undervejs:

mysqladmin status
eller
mysqladmin extended-status

--
- Peter Brodersen

Jeppe Vesterbæk (07-05-2002)
Kommentar
Fra : Jeppe Vesterbæk


Dato : 07-05-02 19:40

> Som du selv er inde på, lader det til at det er "åbn/luk
> connection"-tingen, der er med til at belaste. Du kan evt. tjekke en
> status på din mysql-server undervejs:
>
> mysqladmin status
> eller
> mysqladmin extended-status

ja, den ryger op på et par tusinde.

/Jeppe



Soren 'Disky' Reinke (07-05-2002)
Kommentar
Fra : Soren 'Disky' Reinke


Dato : 07-05-02 19:54


"Jeppe Vesterbæk" <jeppeojeppe_ingenspamtak_@hotmail.com> wrote in message
news:ab93l0$e21$1@sunsite.dk...
> Hvor mange insert-statements kan mySql klare hurtigt efter hinanden? Jeg
er
> ved at lave en simpel simulering over et trafikkryds i java. Blandt andet
> bilers ankomsttider skal logges i en mySql-database, jeg har lavet. Skal
der
> f.eks. genereres 20 biler pr minut i hver retning og simuleringen skal
> strække sig over 60 minutter, bliver dette til 20 x 4 x 60 = 4800 insert
> statements lige efter hinanden.
>
> Dette ser ud til at kvæle min mySql-server (kører lokalt på min computer).
> Den når kun at indsætte onkring 2000 rækker. Det virker fint hvis jeg
f.eks.
> kun vælger at lade simuleringen strække sig over 1 minut (80 inserts).
>
> Jeg får følgende fejl i java:
> java.sql.SQLException: Cannot connect to MySQL server on localhost:3306.
Is
> there a MySQL server running on the machine/port you are trying to connect
> to? (java.net.BindException)
>
> Kvæler jeg min mySql-server? Hvis ja, hvad kan jeg gøre?

Bruger du connection pooling ? eller opretter og lukker du en connection
hver gang ?

Har du tunet mysql i din my.cnf fil ?

--
With many Thanks
Soren ' Disky ' Reinke ICQ #1413069 remove 'ihsyd' when email replying
Please visit my Freshwater Aquaria Webpage
http://www.disky-design.dk/fish



Jeppe Vesterbæk (07-05-2002)
Kommentar
Fra : Jeppe Vesterbæk


Dato : 07-05-02 20:24

> Bruger du connection pooling ? eller opretter og lukker du en connection
> hver gang ?
Jeg opretter og lukker hver gang. Ved ikke hvad pooling er.

> Har du tunet mysql i din my.cnf fil ?
Jeg ved ikke noget om denne config-fil, så nej.

/Jeppe



Jeppe Vesterbæk (07-05-2002)
Kommentar
Fra : Jeppe Vesterbæk


Dato : 07-05-02 21:14

> Bruger du connection pooling ? eller opretter og lukker du en connection
> hver gang ?

Jeg har nu læst omkring pooling her:
http://developer.java.sun.com/developer/onlineTraining/Programming/JDCBook/c
onpool.html#pool

Jeg må tilstå, at jeg ikke forstår det. Min java erfaring er kun 1 uge, så
jeg kan ikke det vilde endnu :)

I/du kan se hvad jeg har fået lavet indtil nu. Det virker hvis man sætter en
lille gennemløbstid (skaber ikke så mange connections). Da jeg selv har
lavet det meste fra bunden, er der sikkert nogle tåbelige kodelinier imellem

Se java-filerne er: http://www.but.auc.dk/~jhv38731/vejsystem/

/Jeppe



-Martin- (07-05-2002)
Kommentar
Fra : -Martin-


Dato : 07-05-02 22:12

On Tue, 7 May 2002 22:13:55 +0200, "Jeppe Vesterbæk"
<jeppeojeppe_ingenspamtak_@hotmail.com> wrote:

>> Bruger du connection pooling ? eller opretter og lukker du en connection
>> hver gang ?
>
>Jeg har nu læst omkring pooling her:
>http://developer.java.sun.com/developer/onlineTraining/Programming/JDCBook/c
>onpool.html#pool
>
>Jeg må tilstå, at jeg ikke forstår det. Min java erfaring er kun 1 uge, så
>jeg kan ikke det vilde endnu :)
>
>I/du kan se hvad jeg har fået lavet indtil nu. Det virker hvis man sætter en
>lille gennemløbstid (skaber ikke så mange connections). Da jeg selv har
>lavet det meste fra bunden, er der sikkert nogle tåbelige kodelinier imellem
>
>Se java-filerne er: http://www.but.auc.dk/~jhv38731/vejsystem/

Ikk fordi jeg ved en DYT om Java kun lidt mysql ... men slet ikk i
denne retning :)

Anyway .. kunne da VILDT godt tænke mig at se dit projekt ... tænke på
om det ikk kunne køres på webserveren ?

Så måtte du da gerne lave det da :)

Tonni Aagesen (07-05-2002)
Kommentar
Fra : Tonni Aagesen


Dato : 07-05-02 23:28

"Jeppe Vesterbæk" <jeppeojeppe_ingenspamtak_@hotmail.com> skrev i en
meddelelse news:ab93l0$e21$1@sunsite.dk...

> Dette ser ud til at kvæle min mySql-server (kører lokalt på min computer).
> Den når kun at indsætte onkring 2000 rækker. Det virker fint hvis jeg
f.eks.
> kun vælger at lade simuleringen strække sig over 1 minut (80 inserts).
>
> Jeg får følgende fejl i java:
> java.sql.SQLException: Cannot connect to MySQL server on localhost:3306.
Is
> there a MySQL server running on the machine/port you are trying to connect
> to? (java.net.BindException)
>
> Kvæler jeg min mySql-server? Hvis ja, hvad kan jeg gøre?

Bare en tanke... Connect'er du for hver query og "rydder" du ordentligt op?


--
Mvh
Tonni Aagesen
<agent29 AT stofanet DOT dk>




Jeppe Vesterbæk (08-05-2002)
Kommentar
Fra : Jeppe Vesterbæk


Dato : 08-05-02 00:54

> Bare en tanke... Connect'er du for hver query og "rydder" du ordentligt
op?

Jeps, jeg rydde godt nok op efter mig, men jeg connectede for hver query.
Dette gav mange tusinde connects til min MySql database i løbet af få
sekunder. Det var her fejlen lå (nok en følge af, at jeg som skrevet før
knap har brugt java én uge).

Nu har jeg imidlertid ved at splitte det lidt op, dvs. en class til connect,
2 til query og 1 til at lukke. Jeg har brugte Sørens kode fra en tråd på
eksperten.dk (http://www.eksperten.dk/spm/136550).

Mange tak for hjælpen til jer alle.
vh Jeppe



Soeren Dalby (08-05-2002)
Kommentar
Fra : Soeren Dalby


Dato : 08-05-02 21:57

Hej Jeppe,

Det lyder meget sært. Jeg kører et internetscanningsprogram, der typisk har
20 samtidige tråde, som benytter mySQL intensivt uden problemer. Hvis dit
program tilmed er enkelttrådet vil den næste insert jo først blive kaldt når
den foregående er afsluttet, så det giver under alle omstændigheder ingen
mening.

Har du checket om mySQL har diskplads nok og hvordan dens log ser ud ??

Prøv evt. at lave samme setup på en anden maskine. Det lyder ikke som et
problem i dit program.


--
Med venlig hilsen / best regards

Soeren Dalby


"Jeppe Vesterbæk" <jeppeojeppe_ingenspamtak_@hotmail.com> wrote in message
news:ab93l0$e21$1@sunsite.dk...
> Hvor mange insert-statements kan mySql klare hurtigt efter hinanden? Jeg
er
> ved at lave en simpel simulering over et trafikkryds i java. Blandt andet
> bilers ankomsttider skal logges i en mySql-database, jeg har lavet. Skal
der
> f.eks. genereres 20 biler pr minut i hver retning og simuleringen skal
> strække sig over 60 minutter, bliver dette til 20 x 4 x 60 = 4800 insert
> statements lige efter hinanden.
>
> Dette ser ud til at kvæle min mySql-server (kører lokalt på min computer).
> Den når kun at indsætte onkring 2000 rækker. Det virker fint hvis jeg
f.eks.
> kun vælger at lade simuleringen strække sig over 1 minut (80 inserts).
>
> Jeg får følgende fejl i java:
> java.sql.SQLException: Cannot connect to MySQL server on localhost:3306.
Is
> there a MySQL server running on the machine/port you are trying to connect
> to? (java.net.BindException)
>
> Kvæler jeg min mySql-server? Hvis ja, hvad kan jeg gøre?
>
> /Jeppe
>
> X-POST til dk.edb.database og dk.edb.programmering.java da jeg ikke er
helt
> sikker på om problemet ligger i java-delen eller hos MySql
> X-FUT: dk.edb.database
>
>



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

Månedens bedste
Årets bedste
Sidste års bedste