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