Domanda

Sto lavorando al progetto con una tabella DB relativamente grande ( 700K righe ).

Errore, ho fatto durante la progettazione dello schema DB. Quando le righe aumentavano, dovevo aumentare il tipo di colonna ID bigint ( x ).

Ora è bigint (44). Ho paura di impostare un valore x elevato perché pensavo che potesse rallentare in modo significativo le prestazioni. Forse mi sbaglio ..

Per favore, aiutatemi a risolvere il problema.

Quale tipo di colonna posso impostare una volta e dimenticare questo problema?

Cosa devo imparare meglio nel campo della progettazione dello schema DB?

È stato utile?

Soluzione

Quando crei una colonna come BIGINT (44) il " 44 " è la larghezza di visualizzazione - non influisce sull'intervallo di valori che è possibile memorizzare o sulla velocità con cui vengono recuperati.

Per un ID a incremento automatico vuoi usare un numero UNSIGNED , ad es. BIGINT (44) UNSIGNED . Questo raddoppierà l'intervallo di valori e aggiungerà un ulteriore vincolo, che di solito è una buona cosa.

Un INT senza segno memorizzerà fino a 4.294.967.295 Un BIGINT non firmato memorizzerà fino a 18.446.744.073.709.551.615 - non lo riempirai presto.

Non dici quanto velocemente cresce il tuo ID massimo - se non stai inserendo molte righe, dovresti rimanere con UNSIGNED INT in quanto occupa meno spazio.

Altri suggerimenti

Penso che qualsiasi chiave primaria sarà non firmata per impostazione predefinita. In ogni caso, l'uso di numeri negativi per le chiavi primarie non è ben visto e interrompe le cose.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top