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, 4272 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 ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
LAN, WAN, Wireless
Proxy Performance-Probleme Testmöglichkeiten (4)

Frage von clubmate zum Thema LAN, WAN, Wireless ...

Windows Server
Sporadische Performance-Probleme auf RDS-Server (13)

Frage von Datenreise zum Thema Windows Server ...

Hyper-V
Hyper-V mit iSCSI SAN, Performance-Probleme in den VMs (2)

Frage von hijacker99 zum Thema Hyper-V ...

Windows 7
gelöst Sind euch verstärkte Probleme bei Windows 7 Updates aufgefallen? (4)

Frage von RadioHam zum Thema Windows 7 ...

Heiß diskutierte Inhalte
DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (13)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...

Backup
Clients als Server missbrauchen? (9)

Frage von 1410640014 zum Thema Backup ...