ebiz-webhosting
- Ad -
php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 19-07-2005, 08:42
kosidesign
 Newbie
Links : Onlinestatus : kosidesign ist offline
Registriert seit: Jul 2005
Beiträge: 8
kosidesign ist zur Zeit noch ein unbeschriebenes Blatt
Standard 15.000 Datensätze in Mysql per script aktualisieren

Hallo zusammen,

ich habe ein Problem, sonst würde ich ja hier nicht schreiben.
Also:

Ich habe eine Datenbank mit ca. 160.000 Einträge. Hierfür bekomme ich täglich ein Update, dass heißt ich bekomme eine Textdatei mit ca. 15.000 Datensätzen, wo Änderungen der 160.000 Datensätze vermerkt sind. Also Daten die sich geändert haben, neue Daten und Datensätze die gelöscht werden können. Diese Textdatei lese ich zeilenweise mit einem PHP-Script aus und andere dann die Datenbank. Das heißt eine Schleife mit 15.000 Durchgägnen.

In letzter Zeit ist der Traffic auf meiner Seite angestiegen, sodass immer ca. 200 Besucher auf der Seite sind. Dadurch läuft das Script nicht mehr durch bzw. es bricht ab.

Jetzt meine Frage gibt es eine bessere Möglichkeit die Datensätze zu aktualisieren oder gibt es die Möglichkeit die Datenbank für den Update zu sperren.
Für Lösungsansätze wäre ich euch dankbar.

Ingo
Mit Zitat antworten
  #2 (permalink)  
Alt 19-07-2005, 09:17
Schnoop
 PHP Senior
Links : Onlinestatus : Schnoop ist offline
Registriert seit: Apr 2003
Beiträge: 1.049
Schnoop ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Wann treffen die Daten ein bzw. wie wichtig ist es das die Daten sofort geupdated werden?

Wenn das ganze relativ entspannt zu sehen ist, würde ich das ganze via Cronjob Nachts machen. Da werden bestimmt keine 200 User auf der Seite sein.
Mit Zitat antworten
  #3 (permalink)  
Alt 19-07-2005, 09:43
kosidesign
 Newbie
Links : Onlinestatus : kosidesign ist offline
Registriert seit: Jul 2005
Beiträge: 8
kosidesign ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Daran habe ich auch schon gedacht. kann man denn ein php-script per crown job ausführen oder ist es besser ein sql-statments zu schreiben und dieses dann hochzuladen. Jetzt ist es so, das das Programm einen bestimmten Datensatz aus der Datenbank sucht und diesen dann mit delete oder update, insert verändert. Das ganze dauert dann ca. 8 Minuten bis die 15000 Datensätze abgearbeitet sind.
Mit Zitat antworten
  #4 (permalink)  
Alt 19-07-2005, 09:44
aimbot
 PHP Junior
Links : Onlinestatus : aimbot ist offline
Registriert seit: Feb 2004
Ort: Lahr - Germany
Beiträge: 779
aimbot ist zur Zeit noch ein unbeschriebenes Blatt
Standard

mh, mann könnte die änderungen auch verzögern, so das nicht alles auf einmal gemacht wird sondern bspw. alle 20 sekunden n datensätze.
__________________
MfG
aim
Lies mich jetzt!
- OT-Tags-Liebhaber und BB-Code-Einrücker -
Mit Zitat antworten
  #5 (permalink)  
Alt 19-07-2005, 10:19
Shurakai
 Master
Links : Onlinestatus : Shurakai ist offline
Registriert seit: May 2004
Ort: Bergisch Gladbach
Beiträge: 3.090
Shurakai ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Alternativ nicht für alles ne eigene Query. DELETES oder INSERTS, da kann man hervorragend mehrere mit 1 Query einfügen / löschen.


Zu deiner Frage: Um Tabellen zu sperren, schau dir mal LOCK TABLES an.
Mit Zitat antworten
  #6 (permalink)  
Alt 19-07-2005, 11:20
kosidesign
 Newbie
Links : Onlinestatus : kosidesign ist offline
Registriert seit: Jul 2005
Beiträge: 8
kosidesign ist zur Zeit noch ein unbeschriebenes Blatt
Standard

LOCK TABLES habe ich mir auch schon durchgelesen. Mein Problem ist nur noch, wie kann ich den user Mitteilen, das im Moment die Datenbank gesperrt ist. Ohne diese Mitteilung würder er doch eine Fehlermeldung bekommen??? Also sprich wie fange ich dies ab.

Auch möchte ich mich für die schnellen Antworten bedanken.

Ingo
Mit Zitat antworten
  #7 (permalink)  
Alt 19-07-2005, 11:25
firstlord18
 Member
Links : Onlinestatus : firstlord18 ist offline
Registriert seit: Nov 2004
Ort: Germany
Beiträge: 310
firstlord18 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Überprüfe, ob die Tables gesperrt sind. Wenn das der Fall ist, gebe eine Meldung auf der Seite aus, dass die DB für 10min oder so nicht zugänglich ist!
Mit Zitat antworten
  #8 (permalink)  
Alt 19-07-2005, 11:27
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

Ganz profane Möglichkeit:

Datei anlegen mit Namen locked, irgendwas reinschreiben und dann abspeichern

Tabelle sperren

Daten einspielen

Tabelle entsperren

Datei [u[locked[/u] löschen

Andere Skripte prüfen, ob die Datei locked existiert


Oder einen Wert in eine andere Tabelle schreiben, die du nicht sperrst, oder oder oder
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #9 (permalink)  
Alt 19-07-2005, 11:57
chansel0049
 Member
Links : Onlinestatus : chansel0049 ist offline
Registriert seit: Apr 2004
Beiträge: 294
chansel0049 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Shurakai
[B]Alternativ nicht für alles ne eigene Query. DELETES oder INSERTS, da kann man hervorragend mehrere mit 1 Query einfügen / löschen.
Das geht sogar (begrenzt) für UPDATES mit etwas SQL-TRicksen -- damit kannst Du deine 16.000 Updates sicherlich auf 1000 oder weniger drücken

Siehe CASE ...

allerdings bleibens dann immer noch einige --

Aber waws spricht gegen eine Ankündigung, dass jeden Tag um 5.00 der Server für 10min oder so evtl langsam läuft oder nicht erreichbar is und dann die sache per cronjob reinjagen?
__________________
chansel0049
----------------------------------------------------
if you've reached the bottomline - dig further!
Übersetzer gesucht? http://www.babelport.com
Mit Zitat antworten
  #10 (permalink)  
Alt 19-07-2005, 13:34
prego
 PHP Senior
Links : Onlinestatus : prego ist offline
Registriert seit: May 2005
Ort: Hey ropp, hinne riwwer unn wirrer zuricke!
Beiträge: 1.602
prego ist zur Zeit noch ein unbeschriebenes Blatt
Standard

PHP per Cron:

wget http://www.meinesetie.de/scripts/machmischcron.php

du rufst quasi die seite auf, und das eben per cron....
__________________
so long, der-p | 72dpi-club

Microsoft IE-Manager Dean Hachamovitch bei der Vorführung des IE7 Beta Preview 2 am 20.3.2006:
"Wir hatten mit IE ganz offensichtlich was verschlafen."
Mit Zitat antworten
  #11 (permalink)  
Alt 19-07-2005, 13:47
ExInfernis
 Junior Member
Links : Onlinestatus : ExInfernis ist offline
Registriert seit: Jan 2004
Ort: Berlin
Beiträge: 213
ExInfernis ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Moin,

bei mir wird um 3 Uhr morgens der Login gesperrt und ne Meldung an alle verbliebenen User abgelegt, dass der Server um 3.30 gewartet wird und mit Performanceverlusten zu rechnen ist (beides über einen CRON).
Um 3.30 Uhr geht dann das Update los , anschließend kommt das Backup, und um 4Uhr wird der Login wieder frei geschaltet.
Insgesamt also drei Cronjobs für Sperren, Meldung, Update, Backup und Freischalten!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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 an


PHP News

MariaDB 5.5 veröffentlicht
MariaDB 5.5 veröffentlichtDie freie MySQL-Alternative MariaDB wurde in der stabilen Version 5.5.23 veröffentlicht und soll einige Verbesserungen gegenüber Oracles Communityversion von MySQL mitbringen.

16.04.2012 | Berni

Deutsche Yii Framework Community
Deutsche Yii Framework CommunitySeit dem 19.03.2012 gibt es für die Yii PHP Framework Community ein deutsches Zuhause.

20.03.2012 | dhcomputer

 

Aktuelle PHP Scripte

Advanced Login ansehen Advanced Login

Login-System und Kundenverwaltung, die sich spielend leicht in bestehende Webseiten einbauen lässt und einen enormen Funktionsumfang bietet. Ihre eigene Webseite muss mit Advanced Login nicht umständlich an ein fertiges System angepasst werden.

25.05.2012 Madden | Kategorie: PHP/ Kundenverwaltung
BROM CMS/BelCal 3 ansehen BROM CMS/BelCal 3

Spezielles CMS für Betreiber von Ferienwohnungen. Komplette Seitenerstellung online, Verwaltung mehrerer Objekte, Reservierungssystem mit sofortigem Abgleich im Belegungskalender und vieles mehr bietet dieses Content Management System.

25.05.2012 belcal2 | Kategorie: PHP/ CMS
belbit LiveSupport Script ansehen belbit LiveSupport Script

Schnellen und unkomplizierten Support im LiveSupport-Chat anbieten. Ohne Datenbank und in wenigen Sekunden installiert.

24.05.2012 EichbaumMedia | Kategorie: PHP/ Chat
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:03 Uhr.