2010-12-14 5 views
1

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

+0

Ja, es ist möglich –

+0

Ja, Concurrency ist einer der Hauptgründe für die Existenz von Datenbanken :) Lesen Sie etwas über ACID. – Konerak

Antwort

0

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.

1

Ja, Datenbanken sind für diesen Zweck ziemlich gut ausgelegt. Sie sollten in Ihren Entwürfen ein paar Dinge im Hinterkopf behalten:

  1. Nebenläufigkeit und Race-Bedingungen bei Datenbankschreibvorgängen.
  2. Leistung.
  3. Separate Datenbankberechtigungen für separate Anwendungen.
0

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

0

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.

Verwandte Themen