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
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
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.
Per default im Code wird nur teils indexiert.
Die Indizie, die im HowTo erstellt werden sind davon nicht betroffen...
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
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 Wenn nicht, dann bitte nachfragen.
Gruß
Neospin
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!