mediathekview / plugin.video.mediathekview

Kodi plugin that gives access to most video-platforms from German public service broadcasters using the database of MediathekView.de
https://mediathekview.de/download/#mediathekview-f%C3%BCr-kodi-fr%C3%BCher-xbmc
MIT License
55 stars 24 forks source link

mysql: indexe #202

Closed Blaimi closed 2 years ago

Blaimi commented 3 years ago

Hi,

gibt es irgendeinen Grund, warum auf der mysql-datenbank lediglich auf dem hash ein index erstellt wird? und warum ist der nicht primary-key, der wird ja auch als ein solcher verwendet.

Ich würde den hash zum primary machen und auf die felder dtCreated, channel, showid, aired und duration. Das sind zumindest die Felder die ich auf die schnelle mal identifizieren konnte, die in irgendwelchen WHERE auftauchen.

codingPF commented 3 years ago

Ja es ist ein logischer PK aber bei der Entwicklung war es extrem nervig wenn dir der Ladejob um die Ohren fliegt, weil aus irgendeinem Grund doppelte Zeilen auftauchen. Deshalb ist es kein "harter" PK. Technisch sehen ich da auch keinen Unterschied - außer die RowIds die man sparen könnte (~4MB).

Jeder Index verbraucht Platz im DB file. Das verbraucht Bandbreite, CPU beim entpacken und IO beim lesen. Vorallem bei SD Karten ist IO ein Problem. Deshalb ist das DB file so klein wie möglich gehalten. Die Felder die du ansprichst sind (im default!!!) nicht selektiv. Im default werden Sendungen < 5min und zukünftige Show (trailer) ausgeblendet. Das ist hilfreich aber nicht selektiv genug für ein Index. Bei Channel und Show könnte man jetzt diskutiren aber ich z.B. benutzer für alles die Suche - welche (meistens) nur auf die Namen geht.... Du kannst gerne bei dir verschiedenes ausprobieren und die Ergebnisse hier posten...

codingPF commented 2 years ago

No follow up…closing