AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

MySQL sau lahm

Ein Thema von cheatzs · begonnen am 29. Sep 2004 · letzter Beitrag vom 29. Sep 2004
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von cheatzs
cheatzs

Registriert seit: 31. Aug 2003
Ort: Altenburg
81 Beiträge
 
#1

MySQL sau lahm

  Alt 29. Sep 2004, 19:01
Hi Leutz,
greife mit meinem Programm wie in Delphi-Source erklärt mit MySQL direct auf eine MySQL Datenbank zu.
Leider geht das echt lahm (hab 500 Mhz).
Weiß aber nicht an was das liegt. Um ca. 100 Datensätze hinzuzufügen (einschließlich Berechnungen von DateiHash MD5) brauch ich ca. 6 sek.

Genauso beim Laden verschiedener Datensätze.
Ich lasse mir diese in einem TListView (OwnerData) anzeigen. Je nachdem welcher Datensatz gerade gebraucht wird, wird derjenige eben dann geladen. Dauer auch hier für gesamten Aufbau der Tabelle ca. 3 sek.

Hier mal meine Zugriffs bzw. Schreib und Create-Prozeduren:

Delphi-Quellcode:
//Verbinden

SQLConnection:= TMysqlClient.Create;
  try
    with SQLConnection do
    begin
      Host := *Hostname*;
      Port := 3306;
      User := *User*;
      Password := *Passwort*;
      Db := *Datenbankname*;
      Connect;
    end;

//Hinzufügen

 if SQLConnection.Connected then
  begin
    DateSeparator := '-';
    ShortDateFormat := 'yyyy-mm-dd hh:mm:ss';
    SQLConnection.Query('INSERT INTO '+Table+' (sName, sPath, cLength, wPriority, wState, dtDate, sHash, cLastTimeSend, cDownloaded, wLevel) VALUES ('''+AFile.sName+''', '''+EscapeStr(AFile.sPath)+''', '+inttostr(AFile.cLength)+', '+inttostr(AFile.wPriority)+', '+inttostr(AFile.wState)+', '''+datetostr(AFile.dtDate)+''', '''+AFile.sHash+''', '+inttostr(AFile.cLastTimeSend)+', '+inttostr(AFile.cDownloaded)+ ', '+inttostr(AFile.wLevel)+')',FALSE,fExecuting);
    if Table = conWorkUnitdb then
      SQLConnection.Query('INSERT INTO wr_relation (sWorkUnitHash) VALUES ('''+AFile.sHash+''');',FALSE,fExecuting);
  end;

//Auslesen

if SQLConnection.Connected then
  begin
    if Assigned(SQLResult) then
      FreeAndNil(SQLResult);
    SQLResult := SQLConnection.Query('SELECT * FROM '+Table+' WHERE sHash = '''+sHash+''';',TRUE,fExecuting);
    result.sHash := '';
    if Assigned(SQLResult) then
    begin
      with SQLResult do
      begin
        result.sName := FieldValueByName('sName');
        result.sPath := FieldValueByName('sPath');
        result.cLength := StrToInt(FieldValueByName('cLength'));
        result.wPriority := StrToInt(FieldValueByName('wPriority'));
        result.wState := StrToInt(FieldValueByName('wState'));
        result.dtDate := StrToDateTime(FieldValueByName('dtDate'));
        result.cLastTimeSend := StrToInt(FieldValueByName('cLastTimeSend'));
        result.cDownloaded := StrToInt(FieldValueByName('cDownloaded'));
        result.wLevel := StrToInt(FieldValueByName('wLevel'));
        result.sHash := FieldValueByName('sHash');
      end;
    end
    else
      if not fExecuting then
        showmessage(SQLConnection.LastError);
  end;
Kann das an meinem Computer liegen? 500mhz 192mb RAM MySQL 4.018

Sind die Komponenten vielleicht so langsam (Zeos hab ich schon probiert ... ist noch langsamer .. dauert ca. 1 Minute)

Kann mir das einfach nicht erklären...

Gibts vielleicht schnellere Datenbanken? Paradox, dBase, FoxPro ?

Vielen Dank schon mal im Vorraus

Bye
Thomas Low
THX und viel Spaß beim Coden
Cheatzs
  Mit Zitat antworten Zitat
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#2

Re: MySQL sau lahm

  Alt 29. Sep 2004, 19:06
das problem hab ich auch

bei nem 700 mhz pc mit 1gig ram
und mandrake 10 als OS

.. das teil war so lahm das ich meine geigene datenbank gecoded hab für eine spezielle anwendung.. das is nun 10 mal schneller
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#3

Re: MySQL sau lahm

  Alt 29. Sep 2004, 19:07
Hi,
genau kann ich dir nicht helfen. Aber ich hatte damals mit einem Linux-Server (ähnlicher Rechner) und MySQL kaum Probleme. Allerdings habe ich nicht über Delphi drauf zu gegriffen und kann dazu nichts sagen.
In der Tat sind deine Werte ein wenig hoch, ich meine damals zwar auch recht langsame WErte gehabt zu haben, aber über 2 sec sind die bestimmt nicht gegangen.
Fakt ist aber, dass die Listview schon recht viel Zeit in ansrpuch nicht, um viele Daten anzuzeigen.
Aber auch hier kann man noch ein wenig "tunen", du kannst z.B. das Einfügen zwischen den Befehlen beginUpdate und endUpdate erledigen.
Außerdem gibt es auch noch geeignetere Listviews für mehr Daten, leider weiß ich nicht mehr den genauen Komponentennamen und kann dir auch keinen Link geben, aber vielleicht findest du hier in der DP etwas.
Die Komponente wurde hier jedenfalls schon einige Male erwähnt
Alexander
  Mit Zitat antworten Zitat
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#4

Re: MySQL sau lahm

  Alt 29. Sep 2004, 19:13
die applikation war die gleiche, die die daten ausgewertet hat.. nur die zeos komponente hab ich halt durch meine eigenen klassen ausgewechselt ( TCP / IP )
das war dann highspeed pur.. und die mysql DBs haben auch 100% auslastung beim daten suchen und zurück geben.. also lags nicht am netzwerk, nicht an meiner client applikation sondern einfach nur am mysql wo da extrem viel rechnen musste ( fesptplatte is ne SCSI U 160 )

es war ein schlichtes query über datetime indiziert das ich immer ausgeführt hatte.. und das hat dann extrem rechenpower benötigt
"SELECT * FROM bla where datetime between a and b" oder so änlich

// die tabellen hatten um die 30-50 MB
und pro dataset etwa 10 felder mit varchar(20)
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#5

Re: MySQL sau lahm

  Alt 29. Sep 2004, 19:16
Tja vielleicht habt ihr den Cache von MySQL irgendwie ausgeschaltet !?
Mehr fällt mir dazu nicht ein, ich bin allerdings auch nicht so der DB-Crack...
Alexander
  Mit Zitat antworten Zitat
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#6

Re: MySQL sau lahm

  Alt 29. Sep 2004, 19:18
standard mysql installation unter linux

bzw windows.. das war das gleiche lahme teil unter der gleichen hardware
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#7

Re: MySQL sau lahm

  Alt 29. Sep 2004, 19:25
Tja, da kann ich auch nicht helfen. Jedenfalls war es bei mir doch ein wenig schneller.
Und MySQL wird ja auch nciht gerade als langsam beschrieben. Sicherlich gibt es andere bessere DB's mit mehr Funktionalitäten, aber dann wieder nicht kostenlos...
Vielleicht weiß ja sonst noch wer weiter..
Alexander
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#8

Re: MySQL sau lahm

  Alt 29. Sep 2004, 19:31
je nachdem, wie groß die dateien sind, könnte es auch am hash-berechnen liegen. lass das mal weg, wenn es dann immer noch dauert, ist wahrscheinlich wirklich mySQL schuld.
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#9

Re: MySQL sau lahm

  Alt 29. Sep 2004, 19:33
was meinste mit hash berechnen? das md5 gedöns ?.. das war in meinem fall nicht drin

beim author schon..
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat
Benutzerbild von cheatzs
cheatzs

Registriert seit: 31. Aug 2003
Ort: Altenburg
81 Beiträge
 
#10

Re: MySQL sau lahm

  Alt 29. Sep 2004, 19:47
Danke erstmal für die zahlreichen Antworten...

Ich bestimme den Hash-Wert im Moment von Dateien im Byte-Bereich (meistens so 8-10 Bytes).
Daran kann es also nicht liegen... (hab auch schonmal getestet, die Daten in nem Array zu speichern, ging ratz fatz)

Die Insert_Buffer_Size ist bei mir auf 8388608 (ich nehme an Bytes) gestellt.

Denk aber nicht, dass es daran liegt. Hab nach der Installation nicht daran geändert.

Ich hab mal gelesen, dass das Hinzufügen eines Indexes die Arbeit des SQL-Servers erleichtert.
Hab aber keinen gemacht...
Thomas Low
THX und viel Spaß beim Coden
Cheatzs
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz