ciao

fino ad ora ho sviluppato utilizzando mysql come database, mi piace però molto anche Postgres, soprattutto per la robustezza nella gestione delle policy cascade, e per tutte le funzionalità DBMS che sappiamo essere ben più avanzate rispetto a mysql (se non consideriamo InnoDB o future versioni)

Senza voler lanciare nessun flame su quale database è meglio utilizzare, la mia domanda era più su come interfacciarsi al database.

ultimamente sto facendo dei test

- interfacciandomi direttamente al database
- usando una mia classe che supporta mysql e postgres
- usando un DB abstraction layer (AdoDB)

i test li effettuo utilizzando questo software

http://sourceforge.net/projects/nikstresser

e il risultato è abbastanza esplicativo:

simulando 50 utenti che richiedono 3 volte una pagina dove viene fatta una semplice select su una tabella con 1000 records (e dove i 1000 records vengono stampati a video, ho i segenti tempi

codice:
--- utilizzando solo mysql
Simulazione più lenta: 3
Simulazione più veloce: 2
Durata media simulazione : 2.340000
--- utilizzando la mia classe
Simulazione più lenta: 3
Simulazione più veloce: 2
Durata media simulazione : 2.360000
--- utilizzando AdoDB
Simulazione più lenta: 12
Simulazione più veloce: 2
Durata media simulazione : 5.100000
--- utilizzando PDO
Simulazione più lenta: 3
Simulazione più veloce: 2
Durata media simulazione : 2.300000
simulando 100 utenti

codice:
--- utilizzando solo mysql
Simulazione più lenta: 10
Simulazione più veloce: 2
Durata media simulazione : 5.340000
--- utilizzando la mia classe
Simulazione più lenta: 14
Simulazione più veloce: 2
Durata media simulazione : 6.310000
--- utilizzando AdoDB
Simulazione più lenta: 24
Simulazione più veloce: 3
Durata media simulazione : 13.150000
--- utilizzando PDO
Simulazione più lenta: 16
Simulazione più veloce: 2
Durata media simulazione : 6.560000
voi cosa ne pensate?
a questo punto, visto che le prestazioni non sono paragonabili, se io supporto mysql e postgres a quel paese gli abstraction layer!

[edit]
ho aggiunto il test utilizzando PDO