Angepinnt MySQL Datenbank indizieren

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • MySQL Datenbank indizieren

    Hey Leute,

    um ein bisschen mehr Performance der DB mit MySQL Unterbau zu haben kann man indexieren.
    Wie das funktioniert? ---> [HowTo] XBMC Datenbank indizieren - auf myxbmc.de

    Vielleicht heilft das ja dem ein oder anderen...

    mad-max
  • 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
  • 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