Was ist eine gute serverseitige Sprache für einige schöne CPU- und speicherintensive Dinge, die gut mit php und mysql funktionieren? Derzeit habe ich ein PHP-Skript, das einige Berechnungen basierend auf einer großen Teilmenge einer ziemlich großen Datenbank ausführt und dann diese Datenbank basierend auf diesen Berechnungen (1,5 Millionen Zeilen) aktualisiert. Die aktuelle Implementierung ist sehr langsam und dauert 1-2 Stunden, abhängig von anderen Aktivitäten auf dem Server. Ich hoffte, dies zu verbessern und fragte mich, was die Meinungen der Leute zu einer guten Sprache für diese Art von Aufgabe sind?Serverseitige Sprache für cpu/speicherintensive Prozesse
Antwort
Die Sprache ist nicht das Problem, Ihr Problem ist wahrscheinlich wo Sie diese Berechnungen tun. Klingt, als ob Sie besser in SQL schreiben könnten, wenn möglich. Ist es? Was machst du?
Wo ist der Flaschenhals? Führen Sie ein echtes Profiling durch und sehen Sie, was genau das Problem verursacht. Ist es die DB I/O? Ist es die CPU? Ist der Algorithmus ineffizient? Rufen Sie langsame Bibliotheksmethoden in einer engen inneren Schleife auf? Könnte Vorberechnung verwendet werden.
Sie fragen sich, welches Fahrzeug Sie benötigen, um von A nach B zu gelangen, und Sie haben einen LKW, ein Auto, ein Fahrrad, ein Flugzeug, einen Jet und einen Helikopter angeboten. Die Antwort ergibt keinen Sinn ohne mehr Kontext.
Können Sie mir bitte irgendwelche guten Werkzeuge zum Profilieren vorschlagen? – giroy
http://www.linuxjournal.com/article/7213 Mai oder kann nicht nützlich sein. Das sieht nach dem cprofile-Modul für Python aus, das ich sehr praktisch fand. –
Ich vermute, Ihr Engpass ist nicht die Berechnung. Es dauert definitiv einige Stunden, um ein paar Millionen Datensätze zu aktualisieren.
Wenn das der Fall ist, können Sie eine benutzerdefinierte Funktion in C/C++ für MySQL schreiben und die Funktion in der gespeicherten Prozedur ausführen.
Wir tun dies in unserer Datenbank, um einige sensible Felder während der Schlüssel-Rotation neu zu verschlüsseln. Die Schlüsselrotationszeit wurde von Tagen auf Stunden verkürzt. Es ist jedoch mühsam, eine eigene MySQL-Kopie zu erstellen. Wir haben nach Alternativen gesucht, aber nichts ist der Leistung dieses Ansatzes nahe gekommen.
- 1. Serverseitige Sprache für native Android-Anwendung
- 2. Kosten für serverseitige Serverereignisse auf Serverseite
- 3. JavaFX für serverseitige Bilderzeugung
- 4. serverseitige Ereignisse (für Dummies :))
- 5. JavaFX für serverseitige Bilderzeugung
- 6. Mutex für Rails-Prozesse
- 7. jQuery Selector für serverseitige Steuerung
- 8. GWT: Welche Sprache für die Serverseite?
- 9. serverseitige Browser
- 10. Sollte ich einen NodeJS-Server für das serverseitige Rendering haben?
- 11. serverseitige Validierung
- 12. Serverseitige Ereignisverbindungsproblem
- 13. Serverseitige Analytik
- 14. Serverseitige Virensuche
- 15. Google+ Anmeldung für serverseitige Apps funktioniert nicht.
- 16. API für das serverseitige 3D-Rendering
- 17. W3C-Validierung für die serverseitige Formular-Tag
- 18. Serverseitige Virensuche in einer Datei für Windows
- 19. ASP.NET MVC-Route für serverseitige Imagemap
- 20. Web Sockets serverseitige Implementierung für NodeJS
- 21. Stabile Reactid für das serverseitige Rendering
- 22. IDE für OCaml Sprache
- 23. wie Sprache für Datatable
- 24. Serverseitige Zwischenspeicherung in Openrasta
- 25. Schnelle serverseitige Bilderzeugungsbibliothek?
- 26. erhalten "serverseitige" Variable für die Verwendung in HTML/Javascript-Funktion
- 27. Serverseitige ASP.Net Ajax-Ausnahmebehandlung
- 28. Serverseitige Verarbeitung DataTable
- 29. Zombie-Prozesse erscheinen, wenn ich Prozesse spawne
- 30. Bypass git serverseitige Haken
Ja, sollte es möglich sein. Glauben Sie, dass das die besten Ergebnisse bringen würde? – giroy
Auf jeden Fall. Es bedeutet, dass es direkt auf Ihrem Server ausgeführt wird, und die Daten müssen nicht in PHP/Was immer zuerst übertragen werden. –