12 messaggi dal 14 dicembre 2001
Un saluto a tutti, spero che almeno voi riusciate a risolvere questi
problemi che mi stanno facendo uscir matto! Allora partiamo:

a. PREMESSA
Sto realizzando un portale turistico partendo da zero in cui tutte le
informazioni sono tratte da un UNICO database (Access, che dovrebbe rimanere
sotto i 5Mb).
Ciò significa che ho una connessione al DB aperta prima ancora del tag
<html> per ricavare titolo, keywords, descrizione e via dicendo, ho un corpo
centrale costituito da un menu a sinistra, i contenuti al centro e un altro
menu a destra (tutto estrapolato da DB), infine chiudo la connessione alla
fine dopo il tag </html>.

b. PROBLEMA 1
Il mio maggior tribolare di questi giorni è che quando vado a caricare una
pagina, questa non mi si "compone" mano mano che viene caricata ma mi lascia
tutto bianco e poi di botto mi spara la pagina completa. In termini di tempo
il risultato è lo stesso, ma dal punto di vista dell'usabilità non mi piace
affatto. Pensavo fosse un problema di Buffer ma pur impostandolo a False
ottengo la stessa cosa.
Come potrei sbrogliare la matassa? Dipende forse dalla connessione aperta
all'inizio e chiusa solo alla fine? Nessuna escamotage per risolvere il
problema?

c. PROBLEMA 2
Mosso da quello che leggo nei confronti MySQL/Access mi sono quasi convinto
a migrare verso il primo, anche se qualche dubbio resta.
Ho configurato MySql sulla mia macchina e tutto funziona, riesco anche a
connettermi al DB.
Il problema ora però è che le stringhe SQL che avevo con Access non sembrano
andare d'accordo con MySQL, quindi vi chiedo: secondo voi la migrazione
comporta una riprogrammazzione dell'intero portale? Che differenze ci sono,
in termini di programmazione, tra MySQL e Access oltre alle query SQL? Ad
esempio questa query:

SELECT sezioni.id, sezioni.sezione, sezioni.stato, aree.area, aree.ordine,
templates_s.url
FROM sezioni, aree, templates_s
WHERE sezioni.area=aree.id AND sezioni.url=templates_s.id AND sezioni.area
IN (SELECT id FROM aree WHERE posizione='sin' AND stato=True ORDER BY
ordine)
ORDER BY aree.ordine, sezioni.pos_sezione

funziona perfettamente in Access ma in MySql mi da errore "vicino"
all'IN...dove sbaglio?
E inoltre, in Access facevo uso di quelle che lui chiama "QUERY", in MySql
non esiste nulla di simile? Ciò mi permetteva di avere una certa astrazione
del database dal codice...

d. DUBBIO 1
Il mio menu "si costruisce" attraverso la query che ho inserito qui in alto.
Essendo in tutte le pagine credete che questo influisca molto sulla velocità
di caricamento? Ritenete sia onerosa per il server nel caso di più accessi
contemporanei (comunque inferiori a 100)?

e. DUBBIO 2
Se in una pagina devo effettuare 4 diverse query sullo stesso DB conviene
aprire e chiudere la connessione 4 volte o è preferibile aprirla alla prima
e chiuderla all'ultima (io fin'ora ho fatto così!)?

f. CONCLUSIONI
Scusate innanzitutto la lunghezza del post. In base a quanto spiegato qui
sopra pensato sia sensato e giustificabile un passaggio a MySQL? Si
noterebbe davvero un rilevante aumento di prestazioni?

Un grazie enorme a chiunque potrà aiutarmi!

Saluti,
The Elf
379 messaggi dal 06 settembre 2002
www.andytimes.com
...quande domande... che mySQL sia migliore di access è indubbio... tra l'altro senza nulla togliere a mySQL access è un po'... ehm... lasciamo perdere... quindi mySQL è necessariamente superiore... le differenze tra i due nell'SQL è che nonostrante si basino entrambi sullo standard SQL99 entrambi usano dei dialetti, ovvero delle personalizzazioni... Tipo le Join sono supportate solo (credo) da casa MS, cosi comme TOP.... un po' di lavoro di modifiche devi farle.... vado in ordine di domanda:
b) il problema non è il buffer ma probabilmente hai impaginato tutto in una tabella... vuol dire che il client anche se ha delle informazioni da visualizzare aspetta che sia completato il caticamento di tutta la tabella... se ti è necessario spezza i contenuti in più tabelle
c) integro cio che ho detto sopra... la migrazione comporta lavoro ma anche un necessario studio del SQL "corretto", vuol dire non sporcato e quindi adattabile ad ogni DB che si basa sullo standard SQL99.
d) non dovrebbero esserci molti problemi... in alternativa potresti "caricarlo" in una variabile di applicazione.
e) assolutamente continua come hai fatto fino ad adesso
f) dipende da molte cose... io personalmente non ho ancora concluso la fase migratori, per prigrizia e praticità (anche solo la gestione del file *.mdb) anche se mi sono riproposto di farlo ... se tu sei convinto di avere 100 utenti concorrenti... credo che access non sia la tua base dati...
ciao e buon lavoro

..:: and this is my web ::..
823 messaggi dal 05 agosto 2002
La situazione è abbastanza semplice:
1. Con un buon numero di richieste contemporanee MySQL massacra Access (che d'altra parte è un database personale), direi che 50 accessi contemporanei sono sufficienti.
2. Con molti dati MySQL massacra di nuovo Access.
3. Con molte persone o applicazioni che devono stare nel database, ma essere invisibili le une alle altre MySQL ... massacra Access.
4. A livello di sintassi SQL Access vince di brutto, quelle che tu chiami Query (e che tutto il mondo dei DataBase chiama Viste) e le SubQuery o Select annidate non sono ancora supportate da MySQL, viceversa c'è un equivalente di TOP, cioè LIMIT.
5. Per quanto riguarda il porting dell'applicazione devi (purtroppo) riscrivere l'SQL, tranne le istruzioni più semplici.
6. La connettività java di MySQL è enormemente superiore a quella di Access, non che la cosa ti interessi adesso, ma in giro è considerato un fatto importante.
7. Con MySQL è facile mettere il DB su una macchina e l'applicazione su un altra, aumentando molto la scalabilità.
8. E' corretto aprire la connessione una volta e poi chiuderla alla fine.
9. Se decidessi di passare da Access a MySQL ci sono tool grafici che ti aiutano molto, come MySQLFront, MySQL Control Center e SQLyog.

Per concludere, io un'attenta occhiata a MySQL la darei.

Stick to your guns.
Formazione su MySQL o Firebird? Contattami!
379 messaggi dal 06 settembre 2002
www.andytimes.com
beh...pabloj su DB è imbattibile... se lui consiglia questo... seguilo...

..:: and this is my web ::..
12 messaggi dal 14 dicembre 2001
Grazie ragazzi,mi avete chiarito dei dubbi e allo stesso tempo rassicurato su alcuni punti chiave.
Ma ora quello che mi/vi chiedo è:
- se MySQL non supporta le query annidate come risolvo il problema? Potreste farmi un esempio con la query che ho postato nel precedente messaggio?
- caricare il menu in una variabile Application (finora nel portale non ne ho mai usate) migliorerà le prestazioni?

Grazie ancora per il prezioso aiuto!
823 messaggi dal 05 agosto 2002
Una cosa tipo:

select
sezioni.id, sezioni.sezione, sezioni.stato, aree.area, aree.ordine, templates_s.url
from sezioni, aree, templates_s
where
sezioni.aree = aree.id
and
sezioni.url = templates_s.id
and
aree.posizione = 'sin'
and
aree.stato = '1'
order by aree.ordine, sezioni.pos_sezione

potrebbe andare, testala perchè l'ho fatta ad occhio.
Al posto di true c'e' 1 e al posto di false '0'.

Stick to your guns.
Formazione su MySQL o Firebird? Contattami!

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.