Diese Antwort basiert auf meiner persönlichen Meinung. Ich benutze meine mathematische Logik, um zu antworten
Die zweite Frage betraf die Grenze, an der angehalten werden soll. Lassen Sie uns zunächst eine mathematische Berechnung durchführen. Nehmen wir an, wir haben N Zeilen mit L Feldern in einer Tabelle. Wenn wir alle Felder indizieren, erhalten wir L neue Indextabellen, in denen jede Tabelle in a sortiert wird Sinnvolle Weise die Daten des Indexfeldes, auf den ersten Blick, wenn Ihre Tabelle ein W-Gewicht hat, wird es W * 2 (1 Tera wird 2 Tera), wenn Sie 100 große Tabellen haben (ich habe bereits in einem Projekt gearbeitet, in dem die Tabellennummer war um 1800 Tisch) verschwenden Sie 100-mal diesen Platz (100 Tera), dies ist alles andere als weise.
Wenn wir Indizes in allen Tabellen anwenden, müssen wir über Indexaktualisierungen nachdenken, wenn ein Update alle Indexaktualisierungen auslöst. Dies ist eine Auswahl aller ungeordneten Äquivalente in der Zeit
Daraus schließe ich, dass Sie in diesem Szenario haben, dass, wenn Sie diese Zeit verlieren, es vorzuziehen ist, sie in einer Auswahl oder einem Update zu verlieren, denn wenn Sie ein Feld auswählen, das nicht indiziert ist, werden Sie nicht für alle Felder eine weitere Auswahl auslösen nicht indiziert
was zu indizieren?
Fremdschlüssel: ist ein Muss basierend auf
Primärschlüssel: Ich bin mir noch nicht sicher, ob jemand, der dies liest, in diesem Fall helfen könnte
andere Felder: Die erste natürliche Antwort ist die Hälfte der verbleibenden Felder. Warum: Wenn Sie mehr indizieren sollten, sind Sie nicht weit von der besten Antwort entfernt. Wenn Sie weniger indizieren sollten, sind Sie auch nicht weit, weil wir wissen, dass kein Index schlecht und alle indiziert sind ist auch schlecht.
Aus diesen 3 Punkten kann ich schließen, dass wenn wir L Felder haben, die aus K Schlüsseln bestehen, die Grenze ungefähr ((L-K)/2)+K
mehr oder weniger bei L / 10 liegen sollte
Diese Antwort basiert auf meiner Logik und meinen persönlichen Grundsätzen