Query in RAM con PHP ?

Aritmico

Nuovo Utente
23 Mag 2008
7
0
0
Salve a tutti :)

Avrei un quesito, diverso dal solito, da porvi...

Conoscete un modo per mantenere delle query ( nella fattispecie insert ed update ) in memoria senza eseguirle "al volo" ?

Devo ottimizzazre il più possibile un prodotto che ospita migliaia e migliaia di utenti ed il cliente ha richiesto che le query meno importanti vengano memorizzate da una parte e, ogni tot di ore, tramite un cron vengano effettuati tutti i calcoli ed inserite fisicamente nel db...

Ovviamente sono stati scartati i files di testo o simili ( perchè avrebbero l'effetto contrario che è quello di rallentare il sistema ) e delle tabelle temporanee ( perchè comunque per inserirvi i dati occorrerebbe effettuare delle insert e, a quel punto, si potrebbero fare direttamente sul sistema )...

Ho pensato a degli array globali ma dovrebbero essere legati alla sessione dell'utente e non rispetterebbero il requisito "cron"...

Sempre che abbiate capito il problema ( per colpa mia visto che spiegarlo a parole è veramente difficile ) vi passa per la mente qualche soluzione ?

Grazie anticipatamente per una vostra eventuale risposta :)
 

Aritmico

Nuovo Utente
23 Mag 2008
7
0
0
Eh eh eh...sapevo di non essermi spiegato bene...

Non ho delle query predefinite che effettuano una insert di un preciso dato...

Ti faccio un esempio:

Utente A clicca sul profilo di Utente B e genera una INSERT nella tabella "clicks"
Utente B vota Utente C e genera una INSERT nella tabella "voti"

Io devo memorizzare tutte le INSERT generate dalle richieste degli utenti e, ad una certa ora, effettuarle tutte insieme in sequenza come se fossero in coda...

Il problema è: come mantenere in memoria queste INSERT ?
 

jan267

Utente Attivo
6 Mar 2003
1.950
2
38
35
Milano
twitter.com
Beh potresti optare per una soluzione del genere: una tabella mysql che ha come colonne: userid, querysql.
Dove userid è l'ID del tuo utente (in relazione alla sua sessione) e querysql è la query da eseguire.
Per esequirle tutte assieme puoi fare una cosa del genere:
PHP:
$query = mysql_query('SELECT querysql FROM tuodatabase WHERE userid = "' . campodicontrollo . '";');
while ($res = mysql_fetch_array($query)) {
    mysql_query($res['querysql']);
}
 

Aritmico

Nuovo Utente
23 Mag 2008
7
0
0
Si ma torniamo al problema che ho esplicitato nel post di apertura :)

Per inserire nella tabella l'id utente e la query da eseguire poi in modalità coda insieme a tutte le altre devo, comunque, effettuare una INSERT ( una per ogni azione dell'utente ) e a quel punto posso effettuare direttamente quella sul database principale...

La richiesta sarebbe un oggetto che mantenga in memoria ( a livello server ) questa coda di query...

Ci sto sbattendo la testa da due giorni leggendo decine e decine di articoli e spulciando manuali ma non riesco, davvero, a visualizzare una potenziale soluzione...
 

jan267

Utente Attivo
6 Mar 2003
1.950
2
38
35
Milano
twitter.com
Eh, più a livello server di così!
I dati rimangono nel database mysql per quanto vuoi.
Basta far eseguire quello script ad un'ora da te impostata...
 

Aritmico

Nuovo Utente
23 Mag 2008
7
0
0
Server Web non Server mySQL :D

Rileggi quello che ho affermato: devo risparmiare numero di query fisiche sul DB :)

Inutile effettuare una INSERT su un contenitore B se poi la devo ri-scrivere sul contenitore A: a questo punto anzichè ridurle le sto raddoppiando :D

Non so se mi stai capendo ma nel caso ti capisco: questa richiesta pare un pò assurda anche a me...
 

jan267

Utente Attivo
6 Mar 2003
1.950
2
38
35
Milano
twitter.com
E allora crea un file sul server...
Ad una cert'ora lo apri e tutte le righe contenute nel file che saranno query sql le fai esegurie.
 

Aritmico

Nuovo Utente
23 Mag 2008
7
0
0
A livello di tempistiche è più lenta l'operazione di scrittura su file rispetto a quella su DB...

Ho come l'impressione che la soluzione non ci sia o si sia nascosta veramente bene :book:
 

jan267

Utente Attivo
6 Mar 2003
1.950
2
38
35
Milano
twitter.com
Eh io ho come l'impressione che tu voglia la botte piena e la moglie ubriaca.
Le soluzioni ci sono, il problema è che non le vuoi adottare :)
Enjoy
 

jan267

Utente Attivo
6 Mar 2003
1.950
2
38
35
Milano
twitter.com
Francamento non riesco a concepire come una persona possa avere un database mysql e però non possa/voglia sfruttarlo a pieno.
I problemi nascono perchè la gente se li crea...
 

Aritmico

Nuovo Utente
23 Mag 2008
7
0
0
Secondo il suo ragionamento è che appesantire il lavoro del server web è meglio di appesantire quello del db in determinati orari "caldi"...non saprei giustificarlo diversamente...
 
Discussioni simili
Autore Titolo Forum Risposte Data
max75 query su due tabelle e dati doppioni MS Access 2
E Aiuto per query PHP 8
E Query differenza tra tabelle MySQL 5
E Query Alias PHP 4
T Query con date MS Access 1
K Inserimento query Errore 1366 PHP 4
L Query e selezione DB con $_POST PHP 2
M query update e delete PHP 0
A media degli elementi estratti da una query MySQL 0
S Passare query o utm alla pagina successiva Domini 1
O problema con query PHP 4
M Query PHP 8
R query DELETE non cancella i record PHP 1
G Query con i giorni della settimana MySQL 10
E Query annidate o cicli MySQL 1
C bottone query MySQL 0
T Query su due tabelle con totali Database 4
G AVVISO QUERY IN ESECUZIONE PHP 1
M Riportare in tabella HTML dati estratti con query SQL MySQL 0
S Selezionare ultimo record di una sotto query MySQL 27
G Menù a tendina di ricerca con query PHP 1
V Query per una somma PHP 2
F stampare a video i risultati della query PHP 1
L problema con query select PHP 2
D Query sum Database 1
M Visualizzazione a video risultati query php PHP 0
A form PHP prenotazione tramite query PHP 2
R Problema query con ricerca id numerico PHP 2
G Casella combinata in una query MS Access 4
R Aiuto con le query MS Access 2
Y query di DELETE PHP 4
V Query Oracle Oracle 0
L query somma PHP 8
W Query SQL Classic ASP 2
M Problemi con query a più tabelle PHP 3
Alex_70 Conteggio nella query PHP 0
elpirata Query per leggere dati da una tabella mysql e mostrarli a video in base a parametri passati tramite GET PHP 5
A nome file che contiene punto passato come parametro a query PHP 31
F query e form con select multipla PHP 17
M Problema su query JOIN in tre tabelle PHP 0
M Ordinare una query join PHP 2
Alex_70 Query ORDER BY PHP 18
G Problema ------- con Query PHP 1
G Problema con Query PHP 1
Alex_70 foreach explode query PHP 3
O query con date in formato stringa PHP 3
Tommy03 Unione query di 4 tabelle MySQL 1
I Fatal error: Query Failed! SQL: SELECT * INTO OUTFILE PHP 1
Alex_70 Query group actor e film PHP 26
TpD Incolonnare risultati query (mysql_result deprecato...) PHP 3

Discussioni simili