Frage

Ich arbeite an dem Projekt mit relativ großer DB -Tabelle (700.000 Reihen).

Fehler, ich habe beim Entwerfen von DB -Schema gemacht. Als die Zeilen zunahm, musste ich den Spaltentyp von ID erhöhen (Bigint (x).

Jetzt ist es Bigint (44). Ich habe Angst, einen hohen X -Wert zu setzen, weil ich dachte, dass dies die Leistung erheblich verlangsamt. Vielleicht bin ich falsch..

Bitte helfen Sie mir bei der Lösung des Problems.

Welchen Spaltentyp kann ich einmal einstellen und dieses Problem vergessen?

Was soll ich im Bereich des DB -Schemasdesigns besser lernen?

War es hilfreich?

Lösung

Wenn Sie eine Spalte erstellen als BIGINT(44) Das "44" ist die Anzeigebreite - sie wirkt sich nicht auf den Wertbereich aus, den Sie speichern können, oder die Geschwindigkeit, mit der sie abgerufen werden.

Für eine automatische Inkrementierungs-ID möchten Sie eine verwenden UNSIGNED Nummer, z BIGINT(44) UNSIGNED. Dies verdoppelt den Wertebereich und fügt eine zusätzliche Einschränkung hinzu, was normalerweise eine gute Sache ist.

Ein nicht signiertes INT wird bis zu 4.294.967.295 Eins signiertes Bigint auf 18.446.744.073.709.551.615 aufbewahren - Sie werden das nicht bald füllen.

Sie sagen nicht, wie schnell Ihre maximale ID wächst - wenn Sie nicht viele Zeilen einfügen, sollten Sie sich anhalten UNSIGNED INT wie es weniger Platz nimmt.

Andere Tipps

Ich denke, jeder Primärschlüssel wird standardmäßig nicht signiert sein. In jedem Fall wird die Verwendung negativer Zahlen für Primärschlüssel bestenfalls verpönt und zerbricht.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top