Markus: Tips zur Beschleunigung

Beitrag lesen

Hallo

ich habe ein kleines Performance-Problem.

Ich habe ein Proxychecker programmiert, der mit mehreren Threads arbeitet.

starter.php
--thread.php
--thread.php
--thread.php
usw.

Die Threads haben auch noch nen paar Datenbankabfragen drin, diese sollten aber recht zügig gehen.

Ich mach mir da eher Gedanken über folgende Abfrage:

SELECT Id FROM proxies where Id > '(SELECT Wert FROM config WHERE Name = 'Http-Id') and (Typ2 = 'http' || Typ2 = 'mixed' || Typ2 = '') and Priority != '1' and Letzter <= '".$zeit."' order by Letzter ASC LIMIT 1

Da in der Tabelle manchmal über 20.000 Einträge vorhanden sind hat die DB einiges zu ackern.
Bisher wird diese Abfrage für jeden Thread aufgerufen um die ID der nächsten Proxy auszulesen.

Währe es deutlich performanter, wenn ich jetzt statt einer direkt z.B. 10 ID's auslesen lassen würde anstatt nur einer?

Kann man die Abfrage sonst noch irgendwie optimieren, damit sie schneller durchgeführt wird?

Würde es eine bessere Performance bieten, wenn ich direkt die IP und den Port der Proxy auslesen würde und dann diese an den Thread übergeben würde anstatt nur der ID. Der Thread holt sich im moment anhand der ID die weiteren Daten.

Ach bevor ich es vergesse, des ganze läuft inner Console.
Es währe auch machbar, des die Threads auf dem Apache laufen würden.

Ich hoff mal man kann da nen bisschen was optimieren.

bye