Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Geschwindigkeit - Mehrere Felder in einer Tabelle oder Splitten

Dieses Thema im Forum "Datenmodellierung, Datenbank-Design" wurde erstellt von tScheckSn, 30 Oktober 2014.

  1. tScheckSn

    tScheckSn Neuer Benutzer

    Hallo,

    Ich möchte in einer MSSQL Server Tabelle Einstellungen für ein Programm Speichern. Diese Einstellungen können vorerst vom Typ Text, varchar(255), und int sein, es ist aber möglich, dass später noch andere Datentypen dazu kommen.
    Dafür möchte ich eine Tabelle erstellen, die Weis, von welchem Typ die einstellung ist.
    In einer oder mehreren Tabellen, das ist jetzt meine frage sollen die Werte abgelegt werden.

    Variante 1:

    Tabelle "Settings":
    PID (int) | Name (varchar 255) | Typ (int)

    Tabelle "WerteZuSettings":
    SettingsID (int -> bezug auf Settings.PID) | WertInt (int) | WertVarchar (varchar255) | WertText (text)|



    Variante2:

    Tabelle "Settings":
    PID (int) | Name (varchar 255) | Typ (int)

    Tabelle" WerteZuSettingsInt":
    SettingsID (int -> bezug auf Settings.PID) | Wert(int)


    Tabelle" WerteZuSettingsVarchar":
    SettingsID (int -> bezug auf Settings.PID) | Wert(varchar)


    Tabelle" WerteZuSettingsText":
    SettingsID (int -> bezug auf Settings.PID) | Wert(Text)


    Meine Frage: Bringt Variante 2 einen geschwindigkeitsvorteil?
    Das select würde je nach typ anders aussehen und nur z.b. das Feld WertInt abfragen.

    Schon Danke im Voraus
    Liebe Grüße
     
  2. Hony%

    Hony% Datenbank-Guru

    Von wie vielen Millionen Einstellungen sprechen wir? Ohne EXPLAIN kann ich nur in die Glaskugel schauen. Allerdings bezweifle ich, dass es einen nennenswerten Geschwindigkeitsunterschied geben wird.

    Daneben stellt sich dann noch die Frage ob du die Einstellungen wirklich in der Datenbank speichern solltest. Am effizientesten und damit auch am schnellsten dürften Dateien sein. Je nach Programmiersprache und entsprechender Unterstützung bieten sich ini und xml an. Davon abgesehen vermeidest du dadurch eine Abhängigkeit zum Datenbankserver. Ist der offline sind auch die Einstellungen nicht verfügbar.

    Wenn du dafür wirklich SQL benötigst, bist du möglicherweise mit SQLite besser bedient.

    Gruß
    Hony
     
  3. ukulele

    ukulele Datenbank-Guru

    Variante 2 spart etwas Speicherplatz, Variante 1 ist etwas einfacher zu handhaben, verstößt aber ggf. gegen die Normalform. Die Geschwindigkeit sollte gleich sein.
     
  4. Hony%

    Hony% Datenbank-Guru

    Key->Value Tabellen sind immer als in BCNF zu betrachten.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden