Ich schreibe ein Programm, das (24/7) auf einem Linux-Server läuft und Einträge zu einer MySQL-Datenbank hinzufügt. Der Inhalt der Datenbank wird auf einer Weboberfläche mit PHP dargestellt und der Benutzer sollte Einträge über die Weboberfläche löschen können. Ist es möglich, von mehreren Prozessen gleichzeitig auf die Datenbank zuzugreifen?Zugriff auf MySQL von PHP und einem anderen Prozess zur gleichen Zeit
Antwort
Wenn Sie nicht gerade mit einem Singleton auf die DB zugreifen, ist die maximale Anzahl gleichzeitiger mysql-Verbindungen, die php verwendet, in Ihrer php.ini begrenzt. Ich glaube, es ist standardmäßig 100.
Ja, Datenbanken sind für diesen Zweck ziemlich gut ausgelegt. Sie sollten in Ihren Entwürfen ein paar Dinge im Hinterkopf behalten:
- Nebenläufigkeit und Race-Bedingungen bei Datenbankschreibvorgängen.
- Leistung.
- Separate Datenbankberechtigungen für separate Anwendungen.
Ja, mehrere Benutzer können gleichzeitig auf die Datenbank zugreifen. Sie sollten jedoch darauf achten, dass die Daten konsistent sind. Wenn Sie einen Eintrag mit vielen kleinen SQL Statements erstellen/bearbeiten und in der Zwischenzeit jemand das Webinterface benutzt, kann dies zu einigen Fehlern führen. Wenn Sie eine einfache db haben, sollte dies kein Problem sein, ansonsten sollten Sie Transaktionen verwenden.
http://dev.mysql.com/doc/refman/5.0/en/ansi-diff-transactions.html
Ja, und es wird keine Probleme geben bei dem Versuch, Datensätze in der Gegenwart dieses automatisiertes Programm zu löschen, die 24/7 läuft, wenn Sie die InnoDB-Engine verwenden. Dies liegt daran, dass Transaktionen nacheinander stattfinden, eine nach der anderen beginnt und die Datenbank jedes Mal konsistent ist.
Diese Antwort How to implement the ACID model for a database hat viele relevante Punkte.
Lesen Sie über die ACID Properties einer Datenbank. Eine Mysql-Datenbank mit InnoDb-Engine kümmert sich um all diese Dinge für Sie und Sie brauchen sich nicht darum zu kümmern.
- 1. Einfügen und Aktualisieren zur gleichen Zeit
- 2. mysql Zeit und PHP Zeit nicht die gleichen
- 3. MySQL Datenbank | Abfrage count() und wählen Sie zur gleichen Zeit
- 4. primefaces: Action und Umleitung zur gleichen Zeit
- 5. MySQL Vertikal Horizontal Sum und Vertikal Summe Zur gleichen Zeit
- 6. 2 PHP schaltet zur gleichen Zeit
- 7. Wie man zwei jquery-ajax-Prozess zur gleichen Zeit machen?
- 8. erhalten Spalte Name und Werte in Array zur gleichen Zeit von MySQL in PHP
- 9. jQuery wähle 'this' und einen anderen Selektor zur gleichen Zeit
- 10. Redirect und POST zur gleichen Zeit
- 11. .htaccess Änderung Dateierweiterung und erzwingen auf https zur gleichen Zeit
- 12. Zugriff auf PHP-Cookie von einem anderen PHP-Skript
- 13. Publishing-Marker und Punktwolke zur gleichen Zeit
- 14. Mit WebStorm und IntelliJ zur gleichen Zeit
- 15. Mit Vibrieren und AVCaptureSession zur gleichen Zeit
- 16. Require typedef und Klasse zur gleichen Zeit
- 17. Handle mehrere Anfrage zur gleichen Zeit in Java Mysql
- 18. Animation und Bild Switcher zur gleichen Zeit
- 19. Wie UPDATE und SELECT zur gleichen Zeit
- 20. Join Listen und Unterlisten zur gleichen Zeit
- 21. jQuery - Objekt und Funktion zur gleichen Zeit?
- 22. Abfrage auf Eltern und Kinder zur gleichen Zeit mit Morphia
- 23. 2 verschiedene php Anfrage zur gleichen Zeit pro Benutzer
- 24. Zugriff auf die Ansicht und die Daten eines Listenelements zur gleichen Zeit
- 25. Doppelte Aktion zur gleichen Zeit von NSTimer?
- 26. iOS: Aktualisieren von Einschränkungen und Rahmen zur gleichen Zeit
- 27. Mehrere PHP-Skripte laufen zur gleichen Zeit in Cron
- 28. recycleview scroll mit anderen view zur gleichen zeit
- 29. Drucken zur Konsole und raw_input zur gleichen Zeit
- 30. Erstellen von Knoten und Beziehungen zur gleichen Zeit in Neo4j
Ja, es ist möglich –
Ja, Concurrency ist einer der Hauptgründe für die Existenz von Datenbanken :) Lesen Sie etwas über ACID. – Konerak