1- Dove il file flat può essere utile: Il file flat può essere più veloce di un database, ma in applicazioni molto specifiche. Sono più veloci se i dati vengono letti dall'inizio alla fine senza alcuna ricerca o scrittura. Se i dati non si adattano alla memoria e devono essere letti completamente per portare a termine il lavoro, 'può' essere più veloce di un database. Inoltre, se c'è molto più scrittura che lettura, splende anche il file flat, la maggior parte delle configurazioni di database predefinite dovranno fare in modo che le query di lettura attenderanno la fine della scrittura per mantenere indici e chiavi esterne. Rendere le query di scrittura di solito più lente delle semplici letture.
TD/LR versione: Utilizzare file flat per sistema basato su lavori (Aka, analisi di log semplici), non per query di ricerca web.
2- Cascate di file flat: Se si utilizza un file flat, è necessario sincronizzare gli script quando il file cambia utilizzando il meccanismo di blocco personalizzato. Che può portare a rallentamenti, corruzione fino a dead lock se si dispone di un bug.
3 Database basato su RAM? La maggior parte dei database ha nella cache di memoria i risultati delle query, gli indici di ricerca, rendendoli molto difficili da battere con un file flat. Dato che memorizzano nella cache, far funzionare tutto dalla memoria è per lo più inefficace e pericoloso. Meglio ottimizzare la configurazione del database.
Se stai cercando di ottimizzare le prestazioni utilizzando ram, vorrei innanzitutto eseguire gli script php, le pagine html e le immagini di piccole dimensioni da un'unità ram. Dove il meccanismo della cache è più probabile che sia rozzo e colpisce sistematicamente il disco fisso per non modificare i dati statici.
Un risultato migliore può essere raggiunto con un bilanciamento del carico, il clustering con connessioni backplane fino a array SAN basato su ram. Ma questo è un altro argomento.
5- è possibile che più script si colleghino allo stesso DB contemporaneamente?
Sì, si chiama pooling di connessioni. In php (lato client) è la funzione per aprire una connessione mysql-pconnect (http://php.net/manual/en/function.mysql-pconnect.php). Penso che sia possibile configurare la connessione massima aperta in php.ini. Un'impostazione simile sul lato server mysql definisce il massimo di connessioni client simultanee in /etc/mysql/my.cnf.
È necessario eseguire questa operazione per trarre vantaggio dall'elaborazione parallela della CPU ed evitare lo script php per attendere la query l'uno sull'altro. Aumenta notevolmente le prestazioni sotto carico pesante.
Esiste anche un pool di connessioni/pool di thread in configurazione Apache per client Web regolari. Vedi httpd.conf.
Scusa per il muro di testo, era annoiato. Louis.
Ho trovato questa domanda via Google perché sono uno di quei manutentori che devono risolvere i problemi in un php & mysql + flatfile hybrid. È un incubo. Se ci sono stati guadagni di prestazioni usando i flatfile, è stato più che roso dal costo di dover riparare e mantenere questo sistema di flatfile kludgy. +1 per pensare alla sanità mentale dei manutentori! – bejonbee