Domanda

Ora so che bigint è 2 ^ 64; cioè più atomi di quanti ce ne siano nell'universo conosciuto. Non dovrei preoccuparmi, dato che il mio semplice cervello umano semplicemente non riesce a superare l'enormità di quel numero.

Tuttavia, supponiamo di registrare ogni modifica a ogni categoria, prodotto e ordine nel mio sistema, dal lancio fino alla fine dei tempi. Dovrei preoccuparmi delle prestazioni delle scritture delle tabelle prima di preoccuparmi di rimanere senza valori di chiave primaria? Devo registrare eventi con priorità diverse su diverse tabelle degli eventi? Esaurirò gli atomi su un disco rigido prima di esaurire le origini? Quanto dovrei ottenere una tabella del registro eventi prima di iniziare a archiviarla / cancellarla?

È stato utile?

Soluzione

Anche se ciascuna delle tue voci avesse solo 1 byte, 2 ^ 64 voci occuperebbero circa 18000000 TB sul tuo disco rigido, quindi immagino che non dovresti preoccuparti di questo.

Altri suggerimenti

Se l'applicazione aggiungesse un record alla tabella una volta ogni milionesimo di secondo, verrebbe eseguita per oltre cinquecentomila anni prima che finisse le chiavi.

" Quanto dovrei lasciare che una tabella del registro eventi arrivi prima di iniziare a archiviarla / cancellarla? "

Non cancellare mai i registri eventi: le informazioni hanno un valore significativo.

Tuttavia, quando un manager insiste sulla necessità di un archivio, puoi mostrare il costo di archiviazione rispetto al costo del tuo tempo per (a) pensarci, (b) ottenere la seconda e la terza opinione e poi (c ) scrivere una procedura per archiviare i record di registro.

Il costo dello storage sta crollando. Il tuo tempo è speso meglio in QUALSIASI cosa oltre all'eliminazione dei record di registro.

In conclusione: hai il permesso di smettere di stringerti le mani. Va tutto bene. Non stai commettendo un errore fondamentale.

È altamente improbabile che tu abbia mai esaurito i valori della chiave primaria. Tuttavia, potrebbe essere necessario prendere in considerazione il modo in cui si desidera accedere alla tabella dei registri per recuperare i dati. Usa questo per informare quando dovresti archiviare o pulire i dati. Se i dati di registro vengono letti frequentemente, pensa agli indici di aggiunta per migliorare le prestazioni di lettura, ma tieni presente che gli indici devono essere mantenuti per ogni record aggiunto.

Il modo in cui gestiamo questo è fornendo una funzionalità di archiviazione dei registri, che separa la tabella dei registri in database separati per anno, permettendoci di ripristinare il seed dell'identità sulla nostra tabella LogEvent.

Abbiamo anche diverse tabelle di registro, sebbene solo due principali.

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