Unser Netzwerk: NintendoWiiX.net | Planet3DS.de | NintendoWiiX Message Board

Mittwoch, 6. Juni 2012, 21:11

Du bist nicht angemeldet.

  • Anmelden

ACHTUNG: Es ist soweit
Unsere neue Website WiiUX.de ist offiziell gestartet und das Forum zieht um


Unser neues Forum erreicht ihr ab jetzt unter der finalen Adresse: http://www.wiiux.de/forum.

Dieses Forum wurde in den Lesemodus versetzt, sodass neue Beiträge nur noch im neuen WiiUX-Forum verfasst werden können. Wir hoffen ihr bleibt uns treu und zieht mit uns um, damit wir gemeinsam eine neue und noch größere Community etablieren können.

Vyse

Einzelgänger

Beiträge: 13 448

Geschlecht: Männlich

Wohnort: Neuwied

1

Sonntag, 15. April 2012, 14:11

Noob-Frage zu SQL

Ich brauche euch gerade mal als Telefonjoker für meine Diplomarbeit, da ich sonst niemanden erreiche, der das wissen könnte.

Folgendes: Es werden Objekte anhand einer ID in einer SQL-Tabelle gespeichert. Im einfachsten Fall hat die Tabelle also zwei Spalten, key und value. Die Tabelle nenne ich mal "noob_table". Die IDs sollen Integers und die Werte Strings sein.

Wenn ich nun den Wert "Hundekuchen" mit der ID 42 in der Tabelle speichern will, benutze ich das SQL-Statement:

INSERT_INTO noob_table (key, value) (42, Hundekuchen)

Und später zum Auslesen:

SELECT value FROM noob_table WHERE id = 42

Jetzt meine eigentliche Frage: Wie hoch ist der Aufwand des SELECT-Statements? Steigt er linear mit der Größe der Tabelle und wenn ja, gibt es Möglichkeiten, das zu optimieren? Wie praktikabel ist der Einsatz einer einzelnen SQL-Tabelle, wenn ich mehrere Milliarden Werte in ihr speichern will?

Gengor

Schönmacher Freund

Beiträge: 1 903

Geschlecht: Männlich

Wohnort: Gütersloh

2

Sonntag, 15. April 2012, 15:42

Meinst du mit Aufwand die Rechenzeit, die das Statement nach sich zieht?

Also das hängt in erster Linie davon ab, welche Datenbank du einsetzt und welche sonstigen Einstellungen du für die DB gemacht hast, wie z.B. einen Index zu setzen auf die ID-Spalte.

Auch die maximal Anzahl ein Einträgen in einer Tabelle hängt vom Datenbank-Server und den dortigen Einstellungen ab. Dafür müsstest du vermutlich einfach ein bissle zu MySQL oder Oracle googeln. :tongue :
Linux is like a wigwam - no windows, no gates and an Apache inside.
Check my blog: Gengors Pixelhaufen

Vyse

Einzelgänger

Beiträge: 13 448

Geschlecht: Männlich

Wohnort: Neuwied

3

Sonntag, 15. April 2012, 15:49

Zitat

Meinst du mit Aufwand die Rechenzeit, die das Statement nach sich zieht?


Ja.

Also das hängt in erster Linie davon ab, welche Datenbank du einsetzt und welche sonstigen Einstellungen du für die DB gemacht hast, wie z.B. einen Index zu setzen auf die ID-Spalte.


Es wird ein Index auf die ID-Spalte gesetzt, ja.

Gengor

Schönmacher Freund

Beiträge: 1 903

Geschlecht: Männlich

Wohnort: Gütersloh

4

Sonntag, 15. April 2012, 19:48

OK, dann wird's jetzt vermutlich kompliziert. Denn die DB optimiert sich ja zur Laufzeit. D.h. alte Statements werden gecachet und was die DB in Bezug auf den Index macht, ist leider auch nicht immer bekannt.

Fakt ist, du müsstest entweder sehr detailliertes Wissen über die jeweilige DB irgendwo finden oder du testest es.

Aber eine flache Tabelle mit einem Index auf der ID und einem simplen Select-Statement, sollte bei einer modernen DB immer schnell sein. Was ich wie gesagt nicht weiß, ist wie viele Zeilen in eine Tabelle der DB können. Ein bissle Googlen lässt aber darauf schließen, dass eine Oracle damit zumindest klar kommen sollte.
Linux is like a wigwam - no windows, no gates and an Apache inside.
Check my blog: Gengors Pixelhaufen

Vyse

Einzelgänger

Beiträge: 13 448

Geschlecht: Männlich

Wohnort: Neuwied

5

Sonntag, 15. April 2012, 21:58

Ich habe jetzt folgendes geschrieben:

Zitat

Die SQL-Anbindung stößt aufgrund der Tatsache, dass für die Speicherung der Knoten nur eine einzelne Tabelle verwendet wird, an ähnliche Grenzen, da diese Tabelle bei sehr großen Graphen mehrere Milliarden Einträge hätte. Zwar wird bei der Erstellung dieser Tabelle ein Index auf die Spalte gesetzt, in der die IDs der Knoten gespeichert werden, allerdings hängt es stark von der Art der Verwendeten SQL-Datenbank und ihrer Konfiguration ab, ob diese die Anfragen in Form von SELECT-Statements in einer angemessenen Zeit beantworten bzw. überhaupt mit derart großen Tabellen arbeiten kann.


So wie ich meinen Professor kenne, könnte ich für so einen schwammig formulierten Absatz durch die Diplomarbeit fallen, aber da ich den Text spätestens bis morgen früh abgeben muss, geht es jetzt wohl nicht anders.

Danke jedenfalls ;)

Gengor

Schönmacher Freund

Beiträge: 1 903

Geschlecht: Männlich

Wohnort: Gütersloh

6

Sonntag, 15. April 2012, 22:04

Gerne. Viel Erfolg. ;)
Linux is like a wigwam - no windows, no gates and an Apache inside.
Check my blog: Gengors Pixelhaufen