Qual è la capacita di calcolo di un database?

radioButton

Utente Attivo
26 Dic 2013
35
0
6
Arezzo
Ciao a tutti,
la domanda che pongo aprendo questa discussione è la seguente:
ho creato un sito web nel quale offro un servizio;
durante la fruizione del servizio l'utente ogni 30 secondi circa invia un record con un'ottantina di dati ad un database che a sua volta li elabora per poterli poi reinviare indietro al momento in cui gli venga richiesto..
Ho provato il tutto e sembra funzionare però mi domando:
se per assurdo ci fossero contemporaneamente 1000 utenti che usufruiscono del servizio, ognuno chiaramente con il suo id
che fa operazioni indipendenti dagli altri, il database ha una potenza di calcolo tale da poter sopportare il numero elevato di calcoli che deve eseguire?
Forse la mia domanda non ha molto senso ma in effetti ho un po' di difficolta ad immaginarmi degli ordini di grandezza... non vorrei per esempio avere la brutta sorpresa che se + di una decina di utenti usano il servizio
contemporaneamente si blocca tutto.
Ripeto, spero di aver posto una questione sensata.
Ciao.

P.S. Dimenticavo, i record vanno tutti nella solita tabella.
 
Che tipo di database stai usando?
Inoltre sei su un piano hosting condiviso, semi-dedicato o dedicato ?
 
Allora, considera che generalmente il dbms è condizionato dalla macchina su cui è montato e sui limiti che il fornitore dei servizi generalmente imposta per imperire che un applicativo che richiede parecchie risorse non finisca col sottrarne agli altri "coinquilini" della macchina server.
Soprattutto per un hosting condiviso è difficile che ti forniscano le risorse a sufficienza per poter gestire quella mole di traffico e di dati.

Se prevedi quei consumi (1000 utenti simultanei) dovresti -come minimo- passare ad una VPS con due core e 4Gb di memoria RAM dedicati.
 
Ultima modifica:
Convincente, preciso ed esaustivo come sempre Flame, ti ringrazio.
Secondo te a spanne quanti utenti contemporaneamente può reggere il DBMS che ti ho descritto sopra?
 
"A spanne" come unità di misura ti posso assicurare che non è affidabile, ti posso però dire che ho usato SQL Server per progetti a medio traffico di utenza (tra i 1000 e i 4000 online) e con una VPS come quella indicata dovresti riuscire a reggere quei carichi.
Anche con operazioni parecchio voluminose, l'rdbms, da solo, non è andato oltre i 2Gb di RAM di consumo, ma ti parlo di un sistema basato su di uno schema del database bene ottimizzato ed un SSD (Solid State Drive) come hardware di archiviazione di massa.

In sostanza, a patto di avere comunque le risorse hardware per farlo, il dbms può gestire quei carichi.
 
Giusto, hai ragione Flame, l'unità di misura "a spanne" non ha senso se declinata nel concetto di affidabilità...
il problema è che negli ultimi mesi cominciando quasi per gioco (ma neanche tanto) la mia pazzia mi ha spinto
a scrivere sto programma (che in realtà vuole essere un servizio Web) che probabilmente non interesserà
nessuno ma è anche possibilissimo desti le attenzioni di molti utenti. Quindi già per me avere le informazioni
che mi hai dato è importante per cominciare a vagliare questo aspetto della programmazione lato server per
prepararmi ad un piano B nel caso di patatrac! Che so, potrei per esempio monitorare il numero di iscritti
e magari superata una soglia di sicurezza passare ad un dbms + potente (non credo sia complicatissimo da fare).
Con la raccomandazione di farmi notare se la domanda che sto per farti non c'entra niente con questa discussione
e quindi ne aprirò un'altra, ti vorei anche chiedere:
io ho cominciato a scrivere in MsSql (o Sql!? Sono la stessa cosa?) perchè ho trovato a suo tempo una classe e studiandola questo linguaggio mi è
sembrato semplice e diretto, ma vedo che molti scrivono in MySql: se osservo i due linguaggi, mi sembrano molto simili ma allora perchè scegliere
uno o l'altro? Esistono aspetti positivi o negativi dell'uno rispetto all'altro? Forse uno è più potente dell'altro o ne è una
derivazione?
 
E' giusto farsi domande sul "dopo" e in una possibile eventualità.
Attento tuttavia a non lanciarti in operazioni di prematura ottimizzazione: finché non apri e vedi come rispondono gli utenti non puoi sapere quel che succederà e in ogni caso -per esperienza personale- non ti ritroverai mai questo boom iniziale (se non sei un colosso del settore che fa annunci sensazionali), ma il processo di crescita del tuo parco utenti sarà sempre graduale.

Per quanto riguarda le differenze, l'mssql che citi non è un software di database bensì un driver che permette a PHP di dialogare con Microsoft SQL Server (l'effettivo software di database).

Per poter dialogare con uno schema di MS SQL Server è richiesto l'uso del Transact SQL, che è una variante del linguaggio SQL standard che usano invece MySql e altri software di database.

La sigla SQL (Structured Query Language) infatti indica niente di più che una convenzione di istruzioni per poter dialogare in maniera opportuna con un database relazionale, l'importante è che tu abbia chiaro che il linguaggio con cui scrivi la query e il software del database che interpreta tale linguaggio sono cose distinte fra loro.

Sia SQL Server, sia MySql sono ottimi software di database e generalmente il motivo principale per cui il secondo viene preferito al primo, soprattutto con PHP, è il fatto che PHP ne integra in maniera nativa i driver (mentre risulta spesso molto frustrante procurarsi e installare quelli per SQL Server) ed è comunque una soluzione database più che soddisfacente, anche in ambito enterprise.

A questo punto non mi sento di consigliarti l'uno al posto dell'altro, li reputo entrambi ottimi strumenti soltanto che -in quanto tali- riesci a sfruttarli bene solo se li conosci a fondo, quindi istintivamente ti direi di puntare su ciò che conosci meglio se fossi un minimo più esperto in materia.
Ma visto che comunque ti sei approcciato molto di recente alla questione, ti suggerirei MySql per la più ampia mole di guide e risoluzione alle varie problematiche che puoi trovare sia su mrwebmaster, sia nel web in generale.
 
Ultima modifica:
Grazie per la risposta, come al solito ottima.
Si, siccome il caso di avere un boom di utenti è molto remoto, il mio è solo un dubbio sul come comportarmi 'nel caso che...'
Per quanto riguarda il linguaggio credo che per il momento andrò avanti con Sql Server visto che ad oggi ho sempre usato quello.
Grazie ancora.
 

Discussioni simili