Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Web Development
You last visited: Today at 06:23

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[PHP] ca. 90 000 Datensätze verarbeiten

Discussion on [PHP] ca. 90 000 Datensätze verarbeiten within the Web Development forum part of the Coders Den category.

Reply
 
Old   #1



 
Serraniel's Avatar
 
elite*gold: 2222
The Black Market: 204/1/0
Join Date: May 2010
Posts: 6,851
Received Thanks: 5,106
[PHP] ca. 90 000 Datensätze verarbeiten

Moin,

ich hab mir nen SQL Query gebastelt womit ich ne Statistik anlegen will und grafisch darstellen will über Aufrufe in den letzten 24 Stunden. PHP gecoded ist alles soweit, nur scheint es so, als ob PHP nicht mit der Menge der Datensätze klar kommt und irgendwann einfach sagt: Ne ist nicht, ich gib dir nen 500er zurück.

Gibts da vielleicht ne alternative das Result meiner Query zu verarbeiten?
Aktuell:
PHP Code:
$db = @new mysqli($server$user$pass$database);
if(
mysqli_connect_errno() == 0)
{
     
$sql "STATEMENT";
     
$result $db->query($sql);
     while(
$line $result->fetch_object())
     {
          
//Code
     
}

So im groben. Auf mehrere Querys aufteilen hab ich auch schon probiert, dann kam oft, nicht immer, ein Timeout leider.

hab mal künstlich die Datensätze reduziert dann gings, also liegt wohl an der Menge.
Jemand eine Idee (außer vllt mehr Speicher)?
Serraniel is offline  
Old 06/27/2014, 16:36   #2


 
Else's Avatar
 
elite*gold: 4
The Black Market: 165/0/0
Join Date: Feb 2008
Posts: 3,847
Received Thanks: 1,267
Kleiner Hinweis am Rande: Dein Impressum ist unvollständig. Es muss eine postalische Anschrift angegeben werden! Du solltest das korrigieren, nicht das anders wertig einmal kontaktiert wirst.
Else is offline  
Old 06/27/2014, 16:59   #3
 
Mikesch01's Avatar
 
elite*gold: 203
Join Date: Sep 2007
Posts: 732
Received Thanks: 190
Was genau willst du denn auslesen aus deiner Datenbank? So viele Werte brauchst du doch gar nicht.

Du kannst auch Werte kummulieren: z.B
Code:
SELECT SUM(TortenProNutzer) AS gesamtTorten, COUNT(userID) AS gesamtNutzer FROM ...
Mikesch01 is offline  
Old 06/30/2014, 12:09   #4
 
elite*gold: 22
Join Date: Feb 2012
Posts: 576
Received Thanks: 332
php ini timeouts hochsetzen(u.a. max execution time)
VisionEP1 is offline  
Old 06/30/2014, 15:38   #5


 
Kentika's Avatar
 
elite*gold: 0
The Black Market: 120/0/0
Join Date: Sep 2011
Posts: 5,496
Received Thanks: 1,114
Cachen + Cronjob welcher dann alle 12 Stunden oder sowas läuft.
Kentika is offline  
Thanks
1 User
Old 07/01/2014, 14:51   #6
 
mhaendler's Avatar
 
elite*gold: 0
Join Date: Jul 2008
Posts: 1,826
Received Thanks: 226
Du solltest das ganze nicht über den Browser ausführen sondern eine über CLI "Command Line Interface", dadurch erhältst du keinen 500er. Ansonsten:

Ruf das Script auf mit den Parametern (LIMIT 0 OFFSET 0), und übergebe dann LIMIT und OFFSET einfach wieder an das Script (es soll sich selbst aufrufen nach dem verarbeiten)

Dadurch machst du halt immer wieder 200 Datensätze, bis du die 90000 voll hast
mhaendler is offline  
Old 07/01/2014, 18:14   #7



 
Serraniel's Avatar
 
elite*gold: 2222
The Black Market: 204/1/0
Join Date: May 2010
Posts: 6,851
Received Thanks: 5,106
Danke, werde die Sachen am Wochenende mal testen, da hab ich zeit dafür.
Serraniel is offline  
Old 07/03/2014, 01:51   #8
 
elite*gold: 0
Join Date: Feb 2013
Posts: 30
Received Thanks: 12
Für mich klingt das stark danach, als ob deine Abfrage ineffizient ist und du relativ viel Last auf PHP anstatt auf die DB ist. Das ist schlecht, da inperformanter. 90k Datensätze sind nicht viel, da sollte es eigentlich keine Probleme geben. Erstelle selbst für eigene Projekte Statistiken aus über 300k Datensätzen. Die Abfrage braucht dann natürlich ein paar Sekunden um komplett durchzulaufen, das ist klar. Aber so lange das serverseitig was kaputt geht auf keinen Fall.

Die geposteten Vorschläge halte ich nicht für sinnvoll, da sie nicht das eigentliche Problem lösen sondern nur an den Symptomen rumdoktorn. Um genaueres sagen zu können müsste man natürlich deine Abfrage und DbStruktur kennen. Vielleicht fehlen auch Indizes oder es sind welche vorhanden von denen die Abfrage nicht profitiert weil sie schlecht geschrieben ist.

Oder frägst du etwa ALLE 90k Datensätze ab und bastelst daraus Stats zusammen? Das würde natürlich alles erklären.
Th3dan is offline  
Old 07/03/2014, 15:24   #9



 
Serraniel's Avatar
 
elite*gold: 2222
The Black Market: 204/1/0
Join Date: May 2010
Posts: 6,851
Received Thanks: 5,106
Quote:
Originally Posted by Th3dan View Post
Oder frägst du etwa ALLE 90k Datensätze ab und bastelst daraus Stats zusammen? Das würde natürlich alles erklären.
Ja. Ich will ne 24 Stundne statistik, also hol ich mir aus den logs alle logdatensätze der letzten 24 studnen.
Danach geh ich jeden Datensatz durch und guck in weloche stunde er "passt" (0-23 der letzten 24) und inkrementiere entsprechend nen array.

vorher hatte ich für jede der 24 stundne eine einzelne abfrage wo ich die COUNT(id) hatte. Sprich 24 mal diese abfrage. Und dabei entstand irgendwann nen timeout.
Jedne datensatz einzeln durchzugehen war dann jetzt ein neuer versuch, auch wenn mir klar war das das wahrscheinlich noch weniger was wird. xD
Serraniel is offline  
Old 07/03/2014, 17:07   #10

 
elite*gold: 0
Join Date: May 2014
Posts: 91
Received Thanks: 28
Das sollte passen, wenn ich jetzt nicht falsch gelesen habe, bin müde :-D

PHP Code:
SELECT FROM table WHERE timeRow DATE_SUB(NOW(), INTERVAL 1 DAY
Dann mach das lieber so, anstatt alles auszulesen und es hinterher mit PHP zu verarbeiten, das wäre eine zu große Last.
マルセル is offline  
Reply


Similar Threads Similar Threads
Kräuter verarbeiten mit 5.4?
10/18/2013 - World of Warcraft - 10 Replies
Hey leute, ich frage mich, was man momentan bei Patch 5.4 mit seinen MOP Kräutern noch anfangen soll? Die Dunkelmond Karten braucht eh keiner mehr, da man da meines Wissens nach nur noch 476er Schmuck bekommt -> nix' mehr wert bei uns, Schulterinschriften beim NPC verkaufen ist auch sinnlos und so viel Tinte wird nicht benötigt, als das man diese gescheit im AH verkaufen könnte, also was macht Ihr so mit euren MOP - Kräutern im aktuellen Content? Ich meine vor allem die Massenabnehmer? ...
[Java] 2 Comboboxen gleichzeitig verarbeiten
11/28/2012 - General Coding - 2 Replies
Hey Leute, ich habe momentan ein kleines Problem und zwar habe ich ich 2 Comboboxen. Anhand dessen, was in den 2 Comboboxen ausgewählt wurde, soll eine Rechnung durchgeführt werden. Sieht theoretisch so: Wenn in Box 1 der Index 2, in Box 2 der Index 3 ausgewählt ist, soll die Rechnung 5*5 durchgeführt werden. Box 1 Index 1, Box 2 Index 2, dann 6+10 oder so ^^
c++ Winapi - Bitmap Farbarray verarbeiten
01/16/2012 - C/C++ - 4 Replies
Folgendes Problem: Ein Abbild vom Desktop wird erstellt und die Bits werden mit passenden Bitmapheadern erfolgreich als Bitmap gespeichert. Sprich ich bin schonmal sicher, dass ich die Bildinformationen richtig einlese und speicher. Die Bits befinden sich also im Array pbBits. Bitmap-typisch sind die Bildinformationen schon upside-down im Array, daher geben auch pbBits, pbBits und pbBits Farbinformationen (BGR) des linken Pixel der untersten Zeile. Auch die restlichen Pixel dieser...
AfterEffects kan .mov nicht verarbeiten!
09/04/2011 - Technical Support - 2 Replies
Hallo, ich habe an meinen Workstation MAC ein Intro erstellt mit AE CS5. In dem Intro sind auch einige .mov´s drinnen,die lassen sich am PC eigentlich verarbeiten wenn man QuickTime installiert hat,tun Sie aber bei mir jetzt irgendwie nicht mehr. Ich habe es schon mit Reparieren,De/Neu-Installation versucht,aber nichts hilft!
Leere Datensätze in item_attr?
02/11/2010 - Metin2 Private Server - 4 Replies
Huhu, kann jemand erklären, was hinter den leeren Datensätze in der item_attr steckt? Und was bedeuten die Spalte lv5 und folgende (warum steht dort teilweise 5 als wert) ?^^ Screenshot im Anhang.



All times are GMT +2. The time now is 06:23.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.