Sollte ich eine polymorphe ActiveRecord-Zuordnung gemeinsam indizieren?

Ich habe eine Metriktabelle, von der ich erwarte, dass sie sehr groß ist. Es hat eine polymorphe Assoziation, so dass es zu anderen Modellen gehören kann, die eine Metrik aufzeichnen möchten. Normalerweise indexiere ich Assoziationsspalten wie diese, um das Laden von Assoziationen zu beschleunigen. Ich habe gehört, wie Leute über die gemeinsame Indizierung dieser Assoziation gesprochen haben.. Das sieht so aus:

add_index :comments, [:commentable_type, :commentable_id]

Aber ich habe auch Ratschläge gegen die Erstellung von Indizes mit geringer Kardinalität gehört, da die Auszahlung des Index nicht den Aufwand für die Verwaltung des Index ausgleichen kann. Da die _type-Hälfte meiner polymorphen Assoziation wahrscheinlich nur 4-5 Werte in Millionen von Zeilen haben wird, neige ich dazu, nur den _id-Teil der polymorphen Assoziation zu indizieren. Ich werde wahrscheinlich einige zusätzliche gemeinsame Indizes mit der _id-Spalte und einigen anderen nicht erwähnten Ganzzahl- und Datums- / Uhrzeitspalten erstellen, aber ich werde den _type auch nicht in diese Indizes aufnehmen.

Ist das was du tun / empfehlen würdest?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage