Domanda

Non ho qualsiasi numero di utenti in un database (questo potrebbe essere 100, 2000 o 3) quello che sto facendo è usare MySQL "mostra le tabelle" e memorizzare i nomi delle tabelle in un array, quindi sto correndo un while e prendendo ogni nome della tabella (nome dell'utente) e inserendolo in qualche codice, quindi sto correndo detto pezzo di codice per ogni nome di tabella. Con 3 utenti, questo script dura circa 20 secondi. Si utilizza l'API di Twitter e fa alcuni inserti di MySQL. È questo il modo più efficace per farlo o no?

È stato utile?

Soluzione

Certo che no!

Non capisco il motivo per cui si memorizzano ogni utente nella loro tavolo. Si dovrebbe creare una tabella users e selezionare da lì.

Sarà eseguito in 0.0001 secondi.

Aggiornamento:

Una tabella ha righe e colonne. È possibile memorizzare più utenti in righe e le informazioni su ciascun utente in colonne.

Si prega di provare alcune di progettazione di database tutorial / libri, essi wil aiutano molto.

Altri suggerimenti

Se il tuo preoccupati per la memorizzazione di più voci per ogni utente all'interno della stessa tabella di utenti, è possibile avere un tavolo separato per tweets con il tweet_id riferendosi per l'utente.

Mi piacerebbe sicuramente andare per una tabella di utenti.

Database sono ottimizzati per l'elaborazione più righe; alcune delle tecniche utilizzate sono indici, disposizione fisica dei dati sul disco e così via. Operazioni su molti tavoli saranno essere sempre più lento - questo è non solo quello che RDBMS sono stati costruiti da fare.

C'è una sola eccezione - a volte a ottimizzare i database sharding (partizionamento dei dati), ma questo approccio ha il maggior numero di vantaggi e svantaggi. Uno degli svantaggi è che le query come quella che hai descritto prendere un sacco di tempo.

Si dovrebbe mettere tutti gli utenti in una tabella, in quanto, dal punto di vista logico -. Rappresentano un'entità

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