File System sync zur Datenbank



  • Glaubt ihr wirklich, dass das Einfügen in eine In-Memory-Datenbank der Flaschenhals ist wenn er jedes File findet, dann die ID3-Tags (I/O von HDD!) ausliest und dann erst alles in die DB einfügt? Denkt ihr nicht ein erster Schritt wäre hier das ID3-Tag-Auslesen auf später zu verschieben?

    Bzw. anders gesagt @hustbaer: Glaubst du nicht das deine Informationen vor allem für Non-In-Memory-Datenbanken zutreffen? Falls die Statements alle sehr ähnlich sind sollte der Optimizer der DB auch kaum Overhead liefern wenn man jedes INSERT einzeln abschickt, oder?

    MfG SideWinder



  • Denker schrieb:

    Tolle Antworten aber allesamt eine halbgare und vor allem peinliche Mischung von Unwissen.

    Die Aussage trifft auch ganz gut auf deinen Beitrag zu.

    das Element der Tabelle, welches eine Position identifiziert (was ist das, dein Dateiname?) sollte irgend wie Unique oder noch besser der Primary Key sein.

    Es muss weder unique sein, noch der Primary Key. Es reicht wenn ein Index auf die Spalte existiert.



  • SideWinder schrieb:

    Glaubt ihr wirklich, dass das Einfügen in eine In-Memory-Datenbank der Flaschenhals ist (...)

    In-Memory-Datenbank?
    Ich hab den Beitrag jetzt nur überflogen, aber wo steht da was von In-Memory?

    Da steht SQLite. SQLite hat zwar einen In-Memory Modus, nur davon ist hier nicht die Rede. Es sei denn ich hätte es überlesen.

    Bzw. anders gesagt @hustbaer: Glaubst du nicht das deine Informationen vor allem für Non-In-Memory-Datenbanken zutreffen?

    Doch, glaube ich schon. Siehe oben 😉

    Falls die Statements alle sehr ähnlich sind sollte der Optimizer der DB auch kaum Overhead liefern wenn man jedes INSERT einzeln abschickt, oder?

    SQLite ist was das angeht ziemlich doof 😉

    Und auch bei anderen DBMS macht es einen grossen Unterschied.



  • @hustbaer: hast recht, es ist keine In-Memory-Datenbank

    Werd am Wochenende mal deinen Tipp mit dem mehreren Inserts in einem execute ausprobieren.
    Ich geb dann bescheid ob es was gebracht hat 🕶

    @SideWinder: Das mit Integer als PK werd ich auch mal prüfen... vielleicht bringt das ja auch was - könnte ich mir schon gut vorstellen.



  • Hab jetzt mal den Insert umgebaut.
    Von ca. 7 min braucht er nun noch 5 min (kleine Datenmenge).

    Werde jetzt mal alles umbauen noch etwas testen. Sieht aber gut aus 🙂
    Danke für den Tipp!!!



  • Das klingt immer noch nach viel zu viel.
    Oder macht der Teil den du umgebaut hast nur einen kleinen Teil der 7 Minuten aus?



  • naja, es geht den mp3 Ordner durch und ließt alle id3 tags aus...
    Also es macht schon einiges. Ist somit ok 😃



  • hustbaer schrieb:

    das Element der Tabelle, welches eine Position identifiziert (was ist das, dein Dateiname?) sollte irgend wie Unique oder noch besser der Primary Key sein.

    Es muss weder unique sein, noch der Primary Key. Es reicht wenn ein Index auf die Spalte existiert.

    Danke das du dich selbst so öffentlich bloßstellst.

    Natürlich reicht ein Index auf die Spalte für die reine Funktionalität, aber eben nicht, wenn es auf Tempo ankommt. Aber ich bin mir sicher, auch darauf hast du wieder eine völlig ahnungslose Gegenantwort.

    Was bist du eigentlich hauptberuflich - Müllfahrer?



  • Denker schrieb:

    hustbaer schrieb:

    das Element der Tabelle, welches eine Position identifiziert (was ist das, dein Dateiname?) sollte irgend wie Unique oder noch besser der Primary Key sein.

    Es muss weder unique sein, noch der Primary Key. Es reicht wenn ein Index auf die Spalte existiert.

    Danke das du dich selbst so öffentlich bloßstellst.

    Natürlich reicht ein Index auf die Spalte für die reine Funktionalität, aber eben nicht, wenn es auf Tempo ankommt. Aber ich bin mir sicher, auch darauf hast du wieder eine völlig ahnungslose Gegenantwort.

    Du hast noch nie mit Datenbanken gearbeitet, oder?

    Was bist du eigentlich hauptberuflich - Müllfahrer?

    Nein, ich nicht. Du vielleicht?



  • Denker schrieb:

    hustbaer schrieb:

    das Element der Tabelle, welches eine Position identifiziert (was ist das, dein Dateiname?) sollte irgend wie Unique oder noch besser der Primary Key sein.

    Es muss weder unique sein, noch der Primary Key. Es reicht wenn ein Index auf die Spalte existiert.

    Danke das du dich selbst so öffentlich bloßstellst.

    Natürlich reicht ein Index auf die Spalte für die reine Funktionalität, aber eben nicht, wenn es auf Tempo ankommt. Aber ich bin mir sicher, auch darauf hast du wieder eine völlig ahnungslose Gegenantwort.

    Klar reicht ein Index um Geschwindigkeit zu steigern!
    Kann ich aus Erfahrung bestätigen... dadurch haben wir in der Arbeit so manches Statement von mehreren Minuten auf Millisekunden runder gebracht!


Anmelden zum Antworten