2010-01-18 2 views
6

Ich habe keine Erfahrung mit Datenbanken, aber ich möchte es lernen und es in einem Webprojekt verwenden, das ich plane.Sind Datenbanken immer die Lösung im Web-Datenspeicher?

Obwohl ich von einem Freund von mir den Rat bekommen habe, dass die Verwendung von Datenbanken umfangreicher sein sollte, als ich geplant hatte. Er glaubt, dass fast alle Daten in Datenbanken gespeichert werden, wo ich finde, dass Datenbanken am bequemsten sind in Bezug auf Benutzerdaten (nur winzige Datenstücke) und Seiteninhaltsdaten und dergleichen (alles, was nicht nur sehr kleine Daten sind). in statischen Dateien - ohne Wissen, um diese Annahme aufzubauen.

  • Was wäre die bessere Lösung? Mindestdaten in Datenbanken, oder so weit ich Möglichkeiten finde, sie effektiv zu speichern?
  • Gibt es einen Leistungsunterschied zwischen der Verwendung von statischen Dateien und Datenbanken?
  • Wäre die beste Lösung vom allgemeinen Website-Traffic abhängig?

Ich beabsichtige, eine Kombination von PHP und MySQL zu verwenden.

+0

Was ist Ihre eigentliche Frage? –

+0

Es tut uns leid, wenn es unklar ist: Was wäre die beste Speichermethode von Seiteninhaltsdaten (jeder Typ, obwohl nicht größere Dateien wie Binärdateien), und unter welchen Umständen? –

+3

Meistens, aber 42 ist auch eine Option. –

Antwort

4

Wenn Sie in der Lage Suche spezifische Daten basierend auf mehreren Parametern, dann müssen Sie wirklich eine Datenbank verwenden. Die SQL-Sprache bietet Ihnen nämlich die WHERE clause genau dafür. Auch wenn Daten erstellt und aktualisiert werden müssen, ist die Datenbank die beste Wahl, da sie Einschränkungen bietet, um die Eindeutigkeit der Daten zu einem bestimmten Grad zu gewährleisten. Auch Relationen zwischen Daten ist am besten von der Datenbank verwaltet werden (mit Fremdschlüsseln und so weiter).

Zum Beispiel ist es am besten, ein Benutzerprofil in einer Datenbank zu speichern. Auch benutzergesteuerte Eingaben müssen in einer Datenbank gespeichert werden. Server-seitige Include-/Template-Dateien sind andererseits am besten als normale Dateien im lokalen Dateisystem des Servers zu speichern, da nicht darin gesucht werden muss. Sie können schließlich Dateinamen in der Datenbank speichern, wenn Sie sie mit einigen weiteren (Meta) Informationen (z. B. Menü/Untermenü) "verknüpfen" möchten. Gleiches gilt für Binärdateien (Bilder, Downloads, etc.), die Sie nicht in einer Datenbank haben wollen, es sei denn, Sie wollen eine (extrem) hohe Portabilität.

2

Die Datenbank ist der richtige Ort, um Daten zu speichern, die ausschließlich Daten enthalten. Flache Dateien können einfach nicht mit der gleichen Geschwindigkeit wie Daten in einer Datenbank indiziert werden. Auf der anderen Seite erfordert das Einrichten der Datenbank mehr Lernerfolge.

Binärdaten wie Fotos sind in Datenbanken nicht so toll.

+0

Eigentlich sind moderne MySQL und andere Datenbanken in der Lage, Dinge wie JPG- und PNG-Dateien in binäre große Objekte zu stecken. Der Grund, warum Leute diese Medien-Assets in normale Dateien legen, sogar in Systeme wie WordPress, Joomla! Und Drupal, ist, dass das HTML-Modell für die Auslieferung an Browser sehr dateizentriert ist. Sicherlich einen Blick auf WordPress, Joomla !, oder Drupal wird eine hervorragende Lernerfahrung sein. –

+0

Verglichen mit der Leistung von Apache-Serving-statischen Dateien ist die Datenbank im Vergleich völlig unfähig. Drupal speichert keine Dateien in der Datenbank, nur Informationen über die Dateien. Es gibt eine Menge von Google-Informationen darüber, aber ich fand heraus, dass die Kosten für das Booten eines Frameworks, um Daten aus der Datenbank zu bekommen, einfach viel größer als Apache durch das Dateisystem suchen, um herauszufinden, ob die Datei da ist oder nicht. –

0
  • Ich würde sagen: alles in der Datenbank. Datenbanken sind für diese Art von Dingen optimiert. Die meisten Blogging-Software verwenden auch Datenbanken für Inhalte, es ist sicher. Edit: oh, Binärdateien sind in der Tat besser als Dateien. Aber auch MySQL kann sicher mit ihnen umgehen. Wenn Sie wie 1 Foto haben, ist es in Ordnung, es in der Datenbank zu speichern (da es einfacher zu pflegen ist), aber wenn Sie sagen, 10.000 Fotos: verwenden Sie stattdessen Dateien und behalten Sie Bezug auf die Dateien in der Datenbank (ihr Standort, etc.).
  • Absolut: Datenbanken sind wiederum optimiert. Unter der Haube verwendet eine Datenbank Dateien: aber Sie müssen sich nicht mehr darum kümmern.
  • MySQL-Datenbank ist absolut gut für allgemeine Website-Verkehr.

PHP und MySQL ist eine gute Wahl.

3

Datenbanken sind nicht die einzigen Mittel von Persistent Datenspeicher, sie sind einfach die am häufigsten.

Es gibt Dokument/Blogging-Engines, die überhaupt keine Datenbanken verwenden. Wenn eine Seite erstellt, geändert oder kommentiert wird, wird eine statische HTML-Datei erstellt oder geändert. Zum Beispiel Movable Type.

Ebenso können Sie rein speicherinterne Speichersysteme haben, bei denen, wenn das System ausgeschaltet ist, die In-Memory-Daten einfach rekonstruiert werden. Oder Speicherinhalte werden gelöscht, dann wiederhergestellt und es ist keine Datenbank beteiligt. Dies wird typischerweise in Systemen mit einem extrem hohen Durchsatz oder mit einer extrem niedrigen Latenzzeit (Mikrosekundenpegel) durchgeführt.

Ihre Frage kann nicht wirklich beantwortet werden, da die Antwort auf alles, was Sie gefragt haben, "es kommt darauf an" und Sie können es wahrscheinlich machen, wie Sie es tun.

Ich werde das sagen: Mach dir keine Sorgen über die Leistung, bis Sie tatsächlich ein Problem haben.Die meisten Leistungsprobleme, die auftreten können, werden wahrscheinlich auf Indizes und Primärschlüssel in der Datenbank zurückzuführen sein.

PHP und MySQL ist eine gute Wahl.

+0

Ja, das sind vielleicht Alternativen, aber sind sie besser? Leistungsmäßig? In einer Datenbank können Sie ganz einfach finden, wonach Sie suchen. In einer HTML-Datei, die jedes Mal geändert wird, wenn eine Seite geändert wird, müssten Sie einige Suchen durchführen, um die Dinge zu finden, die Sie ändern würden, und diese dann ändern. Für Websites mit viel Traffic, wäre das nicht geradezu dumm? Sonst ein paar gute Punkte. –

+0

Ich widerspreche in Bezug auf die Leistung - flache Datei vs db ist eine Design-Wahl, wo Sie sich in eine Ecke einschreiben können. –

+1

Richtig ausgeführt, flache Datei vs DB ist ein Implementierungsdetail. – cletus

0

Auch wenn die Datenverarbeitung Transaktionen erfordert, sind Datenbanken fast immer die einzigen guten Lösungen.

0

Mysql ist eine der gemeinsamen Datenbanken mit Datenintegrität. Wenn Sie große Daten speichern möchten, empfiehlt sich die Verwendung von mysql. Die Sicherheit sollte auch bei der Verwendung der Datenbank berücksichtigt werden. Mysql ist sehr sicher und einfach zu bedienen, Sie können auch überall im Internet nach einer besseren Dokumentation und Beispielen suchen.

0

Meiner Meinung nach - Sie brauchen einen Grund nicht, um Daten in der Datenbank zu speichern. | Aber ich denke, Sie sollten auch nicht-relationale Datenbanken wie Google Datenspeicher http://code.google.com/appengine/docs/python/datastore/ oder andere ähnliche Dinge in Betracht ziehen.

Verwandte Themen