MySQL Datenbank indizieren

  • Das muss man doch seit Eden schon nicht mehr machen, da das Indexing bereits im Code steckt?!

    Was etwas bringt ist das umstellen der Engine auf InnoDB - habe ich selbst am laufen und habe einen Performancezuwachs bemerkt.

  • Also das hinzufügen, von neuen Dateien, welche dann als neu gelten, finde ich spitze, da leider beim Umbennen oft 2000 also datum erscheint, wenn ich Filebot nehme. daher ist es sehr praktisch das man es umstellen kann das er das hinzugefügte Datum nimmt, nicht das Create-Datum :D

    HTPC: Intel Haswell G3220 mit Win7 und Gotham
    Tab: Samsung Galaxy Tab 2 mit Gotham

    Server: Acer H340 auf WHS2011 mit MySQL Datenbank

  • max: Das wäre mir ehrlich gesagt neu.

    kotaro: Das steuerst du über die [definition='2','0']as.xml[/definition] mit dateadded - Standard ist Filedatum (dateadded 1), dateadded 0 würde das hinzugefügte Datum nehmen

  • Moin,

    hier wird in der Tabelle movie ein Index auf das Feld idMovie gelegt. Damit kann die MySQL Datenbank in dieser Spalte - laienhaft ausgedrückt - schneller suchen.
    Wer sich ein wenig mit Datenbanken und Index-Strategien auskennt wird hier schnell erkennen, dass dieser Hint keine signifikante Performancesteigerung bringen kann!
    Lediglich Joins mit der Tabelle idMovie würden hierdurch beschleunigt. Im normalen XBMC Betrieb ist die Tabelle movie allerdings die führende. Fragen wir einen Film in der Oberfläche ab, wird dessen idMovie verwendet um die restlichen Informationen (hier idFile) aus den anderen Tabellen zu lesen. Wir wissen beim Start der Abfrage also schon, in welcher Zeile der Tabelle movie die Informationen zum Film stehen und benötigen diesen Index daher nicht.

    Beispiel: Ihr habt einen Karteikasten mit Karteikarten all eurer Filme (Zeilen). Diese sind nach der fortlaufenden Nummer (idMovie) ihrer Erstellung sortiert. Auf denen steht die Nummer der Karteikarte eines zweiten Karteikastens (idFile) auf dessen Karteikarten ihr Detailinfos zu den einzelnen Filmen finden könnt. Daneben liegen zwei Listen (Indizes) aller verfügbaren Nummern (idMovie) im ersten Karteikasten (Tabelle movie) und den verfügbaren Nummern aus dem zweiten Karteikasten (idFile). Wenn ihr nun den Film 834 sucht - und genau das tut XBMC es sucht nicht nach dem Titel oder der Laufzeit - dann schaut ihr sicher nicht auf die Liste ob die Nummer existiert, sondern ihr wisst, wo im Karteikasten (Tabelle) ihr den Film (Zeile) finden könnt.

    Eine sinnvolle Verwendung von Indizes wäre die Erstellung jeweiles eines Index auf movie und eines auf file. Und zwar jeweils auf die Felder die beim Abrufen der Daten im Join, also für die Verbindung der beiden Tabellen genutzt werden.

    Beispiel: Wieder die 2 Karteikästen, jetzt liegt aber eine Liste daneben auf der die Position des ausgewählten Films in Karteikasten 1 und DANEBEN die dazu passende Nummer aus Karteikasten 2 steht. Nun kommt XBMC mit der Nummer des Films und ihr könnt auf der Liste sofort sehen wo im zweiten Karteikasten die Detailinfos zum Film stehen.

    Ich habs jetzt noch 2x gelesen und ich glaube es ist einigermaßen verständlich :D Wenn nicht, dann bitte nachfragen.

    Gruß
    Neospin

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!