Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

MySQL Performance Probleme

Frage Entwicklung Datenbanken

Mitglied: Boingboing

Boingboing (Level 1) - Jetzt verbinden

28.03.2011 um 12:18 Uhr, 4312 Aufrufe, 7 Kommentare

Hallo, ich habe eine Frage bezüglich einer Perfomance-Optimierung bei meiner mySQL Datenbank.

Ausgangsituation:
gehosteter Webserver bei Strato
Lokaler MSSQL Datenbankserver

Ich möchte eine Art Synchronisation zwischen der lokalen MSSQL und der auf dem Webspace liegenden mySQL Datenbank machen. Dafür habe ich ein Programm geschrieben, welches Werte aus meiner MSSQL Datenbank ausliest, verarbeitet und zu kleinen 500 Zeilen Dateien schnürrt (CSV Format). Anschließend nimmt er die (im schnitt 80 Dateien a 500 Zeilen pro SynchAuftrag), schiebt sie einzeln per FTP auf eine Bestimmte Stelle und führt danach für jede hoch geladene Datei ein sich auf dem FTP befindendes PHP Script aus, mit Parameterübergabe: zu importierendes Dateipaket (zB 89_52521_455252_4777.csv). Keine Sorge, habe es gegen Fremdzugriff und Missbrauch abgesichert ^^

Das klappt alles auch wunderbar, nur habe ich leider folgendes Problem

Da ich mit riesen Datenmengen hantiere und Teilweise ein paar hundertausend Datensätze im Akkord synchronisieren möchte, gibt es beim Import ein Problem.

Die PHP Datei importiert jede CSV-Datei einzeln, nach einem bestimmten Schema, danach wird die CSV Datei gelöscht/verschoben und meinem Export-Programm ein "ok" geliefert, erst danach uploaded er die nächste CSV-Datei und führt das PHP erneut aus.

Die ersten 5 Dateien verarbeitet das Script <1 Sekunden (Also fast nicht merklich) danach dauern die nächsten 5 Dateien 3 Sekunden bis sie importiert sind. Danach jede weitere 10 Sekunden bis das PHP die "ok" -Antwort gibt. Das Problem dabei ist halt: bei im Schnitt 80 bis 100 Dateien pro Upload-Zyklus dauert es halt 900 Sekunden bis der Auftrag erledigt ist. Laut meiner Vorgabe soll so eine Update aber alle 10 bis 20 Minuten maximal stattfinden, neben 10 bis 15 Aufträgen gleicher Art (Selbes Schema, andere Daten, anderes Ziel, gleicher Datenbankserver)

Jetzt meine Frage woran könnte das liegen? Also die Indexes, Keys etc sind alle ordentlich gesetzt. An der Schleife innerhalb der PHP glaube ich nicht dass es liegt, sonst würden die ersten 5 Dateien nicht fast instant eingelesen werden.

Riegelt der Server ab weil er überlastet ist? Hab mal ein Sleep eingebaut von 1.5 Sekunden nach jedem Import, aber das Phänomen war das gleiche, nach ca 10 Dateien fortdauernd 10 Sekunden Response-Time.

Wäre für eure Hilfe dankbar.
Mitglied: 16568
28.03.2011 um 12:23 Uhr
Stratos MySQL-Cluster ist alles andere als performant.
Wie wäre es, wenn Du einfach per ODBC von Deiner Windows-Dose drauf zugreifst?


Lonesome Walker
Bitte warten ..
Mitglied: vossi31
28.03.2011 um 12:34 Uhr
Lässt Strato denn den Zugriff von "außen" zu?
Glaub ich ja eher nicht.

Henning
Bitte warten ..
Mitglied: Boingboing
28.03.2011 um 12:39 Uhr
genau das is das Problem, ich komm von außen nicht direkt an die DB, nur immerhalb des Apaches.

Hab meinem Chef schon gesagt ich hätte gern nen Root, oder zumindest einen Managed PowerServer mit ordentlich Dampf, einer bei dem die Datenbank nicht ausgelagert ist... aber Solang das noch nicht ist muss ich leider so klar kommen.
Bitte warten ..
Mitglied: vossi31
28.03.2011 um 12:55 Uhr
Wenn du meinst, dass es an den vielen Einzeldateien liegt, kannst du ja versuchen alles in einer Datei zu machen und dein PHP-Script entsprechend anzupassen.
Bitte warten ..
Mitglied: 16568
28.03.2011 um 22:06 Uhr
Zitat von vossi31:
Lässt Strato denn den Zugriff von "außen" zu?
Glaub ich ja eher nicht.

Glauben heißt nichts wissen...

http://www.strato-faq.de/746


In diesem Sinne

Lonesome Walker
Bitte warten ..
Mitglied: vossi31
29.03.2011 um 09:06 Uhr
Interessant, dann müsste sich Boingboing also mit SSH/PUTTY beschäftigen und das ggf. scripten sofern er mindestens so ein Power-Paket gebucht hat. Mit ODBC geht es ja wohl nicht bei Strato:

http://www.strato-faq.de/artikel.html?sessionID=ff36a1d38fafcdd489a4296 ...
(Suche nach "ODBC" in der FAQ)

Henning
Bitte warten ..
Mitglied: 16568
29.03.2011 um 19:27 Uhr
Zitat von vossi31:
Interessant, dann müsste sich Boingboing also mit SSH/PUTTY beschäftigen und das ggf. scripten sofern er mindestens so
ein Power-Paket gebucht hat.

Irgendeinen Tod muß er ja sterben, wenn er bei so einem madigen Hoster ist.

Mit ODBC geht es ja wohl nicht bei Strato:

http://www.strato-faq.de/artikel.html?sessionID=ff36a1d38fafcdd489a4296 ...
(Suche nach "ODBC" in der FAQ)

Ja und?
Ist das mein Bier?
Ich hab eigene Server, von daher wayne?


Lonesome Walker
Bitte warten ..
Ähnliche Inhalte
Windows 7
Performance Probleme bei Programmen und Windows (10)

Frage von Kunzi333 zum Thema Windows 7 ...

Hyper-V
gelöst Datenträger Performance Probleme Server 2016 (5)

Frage von hanshanshans zum Thema Hyper-V ...

SAN, NAS, DAS
Performance Probleme bei MSA P2000 (6)

Frage von Kalma73 zum Thema SAN, NAS, DAS ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte
Viren und Trojaner
Ransomware .nm4 (14)

Frage von Zyklo92 zum Thema Viren und Trojaner ...

iOS
16 iPads zentrall verwalten (14)

Frage von simonlohr zum Thema iOS ...

Microsoft Office
+1.000 Ordner in Outlook: Wie besser? (11)

Frage von Matsushita zum Thema Microsoft Office ...