[Python] Usare il db giusto, non quello sbagliato

Enrico Bianchi enrico.bianchi a ymail.com
Ven 12 Lug 2013 22:56:33 CEST


On 07/12/2013 11:15 AM, Alberto De Prezzo wrote:
>> Come benchmark non male. E dimostra come non stiamo dicendo cazzate.
Veramente quello non era un benchmark, ma un caso reale :)
Per effettuare un benchmark, tempo fa', scrissi questi: 
https://github.com/henryx/TestDB
In effetti devo precisare che vanno a testare un caso specifico 
(partizionamento logico usando una vista), ma i risultati rimangono 
comunque interessanti:

[ebianchi a cdk026 TestDB]$ python test_db_pg.py
Inizio test
Inserimento dati
Tempo di inserimento dati: 5325.429100
Esecuzione query
Tempo di estrazione max(date_ins): 14.184620
Tempo estrazione dati dal 01/01/1725 al 31/12/1744: 0.840654
Tempo estrazione dati dal 01/01/1725 al 31/12/1824 3.592607
Tempo estrazione dati dal 01/01/1725 al 31/12/1924 7.644323
Fine test
[ebianchi a cdk026 TestDB]$ python test_db_mysql.py
Inizio test
Inserimento dati
Tempo di inserimento dati: 5093.215003
Esecuzione query
Tempo di estrazione max(date_ins): 181.734490
Tempo estrazione dati dal 01/01/1725 al 31/12/1744: 180.580114
Tempo estrazione dati dal 01/01/1725 al 31/12/1824 178.890681
Tempo estrazione dati dal 01/01/1725 al 31/12/1924 183.226072
Fine test
[ebianchi a cdk026 TestDB]$

I database si trovavano installati sulla stessa macchina virtuale 
(CentOS 6.4 1 core, 1Gb di RAM, 2Gb di swap) e le versioni erano 
PostgreSQL 9.2.4 e MySQL 5.5.32

> Ah be, se questo è il tenore della discussione, neanche mi ci metto a 
> documentare le mie affermazioni.
Direi che piu` che il tenore, e` che si sta cercando di difendere 
l'indifendibile ;)
Ripeto: MySQL e` buono per lavori semplici in cui lo schema e le query 
non sono troppo complesse, ma un caso del genere puo` andare veramente 
bene solo per siti web poco complessi (e, guarda caso, MySQL viene 
strausato in quel campo). D'altro canto, PostgreSQL non solo compete 
nello stesso campo di MySQL, ma spazia anche in campi generalmente 
dominati da altri nomi ben piu` blasonati (competendo abbastanza bene, 
aggiungerei). Per quanto riguarda i nomi da te citati, semplicemente 
usano MySQL perche` devono mantenere un supporto legacy (hanno 
cominciato con quello) e perche` lo usano aggirando le limitazioni (non 
a caso, i maggiori contributori di patch per MySQL sono Google e Facebook)

> Come quelli di
> *Yahoo*! ah,
Yahoo! storicamente usava una versione di PostgreSQL adattata ai suoi 
scopi (il motore era di tipo colonnare), poi probabilmente hanno 
cominciato ad usare anche MySQL a causa dei vari acquisti fatti

Enrico
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20130712/203b09d2/attachment-0001.html>


Maggiori informazioni sulla lista Python