Newsgroup: it.lavoro.professioni.webmaster
Titolo: mysql e postgresql free o no

se non ho capito male mysql è free solo per un uso non commerciale,
mentre postgresql sempre;
pero' visto che chi fa un sito poi alla fine lo ospiterà presso un 
provider, allora il provider che fornisce mysql deve avere la licenza;
quindi i casi di effettivo utilizzo free sono limitati, cioè solo a 
quelle strutture non a fini di lucro e che hanno dei propri server.
se è cosi' pero' non capisco perche' la maggior parte (il 95% ?)
dei fornitori di spazio web offre mysql come db?

- aasseeerrr :

Perche' MySQL ha sopperito alle sue estese e gravi carenze tecniche e di
licenza con una grossa dose di sano marketing, a cui i vari webmaster
hanno piacevolmente abboccato.
Al di la della licenza, e' un prodotto profondamente mediocre, se puoi
usa altro, possibilmente Postgres/Firebird.
Anche SQLServer, pagare per pagare tenta almeno di avere un DBMS
funzionante, e non un "contenitore di tabelle".
HTH,
  ngw

 hanno piacevolmente abboccato.
Magari perche', a seconda delle necessita', e' il piu' performante?

- /\/eoviruz :

Non lo e' piu', da circa due anni.
Se noti i divertentissimi benchmark che hanno fatto nascere questa
leggenda metropolitana sono scomparsi appena MySQL ha iniziato ad
implementare le funzionalita' dei DB veri.
E' esattamente cio' che intendo per "marketing" (sostituire con hype).
Ad oggi, l'unico tratto distintivo di MySQL e' la quantita' di modi in
cui si possono corrompere i propri dati.
Mai sentito la frase "putting lipstick on a pig" ?
HAND,
  ngw

 mentre postgresql sempre;
a prescindere dall'uso, non so se sono free... anche se questa parola poco
centra con la politica dei due DBMS...
in ogni caso MySQL è davvero carente come DB e per definirlo serio gli
mancano davvero un sacco di code. PostGresSQL è decisamente buono, nulla a
che vedere con MySQL, forse un pò più difficile da maneggiare.
-- 
Lino Mari
http://www.ebow.it
 - e-business on web!
http://www.ebow.it/blog/
 - Mktg Log
http://www.dev2dev.it
 - La rete ha connesso nuove particelle - d2D004

 Magari perche', a seconda delle necessita', e' il piu' performante?
le performance non si calcolano su una query semplice. ma su molti altri
fattori, come le subquery, query distribuite, fail over, indicizzazione,
integrità referenziale... etc. etc...
lo ritieni ancora performante ?


 che vedere con MySQL, forse un pò più difficile da maneggiare.
Da maneggiare no, come ogni DB richiede esperienza e conoscenza per il
tuning.
HAND,
  ngw

 funzionante, e non un "contenitore di tabelle".
pero' ora se non sbaglio con il php5 viene "spinto" un altro db lite
e inoltre postgres dovrebbe essere portato anche su windows, quindi
ha una concorrenza maggiore (senza marketng);
un mysql nato solo per unix-linx ora avrebbe tale diffusione ?
cosa pensi come sarà la battaglia futura, cioè mysql sta cercando
di aggiungere molte funzioni che non aveva mentre postgresql sta 
cercando di andare verso windows; cioè alla fine saranno molto simili ?
ognuo cercherà di integrare i vantaggi dell'altro anche se forse è piu' 
facile per posgtgresql lavorare anche sotto windows che per mysql
aggiungere funzionalità gia consolidate in postgres; poi l'altro
db lite rimarrà solo per i casi piu' semplici.
al momento pero' il mercato e i fornitori di servizio danno ragione a mysql

 mysql
diciamo che il mercato si adegua alle richieste :-P
-- 
ITHost (your host company)
Technical Manager
C. Paparelli (MCSE,MCSD,MCDBA)
http://www.ithost.ch
 

 al momento pero' il mercato e i fornitori di servizio danno ragione a mysql
Calma, PostgreSQL ha *gia'* funzionalita' nemmeno pianificate nelle
versioni prealpha di MySQL, e genericamente una impostazione che, per
essere uguagliata, richiederebbe una riscrittura di MySQL da zero.
Oltre ad essere un ORDB, PostgreSQL risolve molti problemi in modo
assolutamente originale, la natura di "progetto di ricerca" non e' mai
stata perduta: ad esempio il sistema in cui e' implementato ACID e',
rispetto alla maggior parte delle altre soluzioni, incredibilmente
elegante e sicuro.
Naturalmente ha pagato dazio nel porting per Windows, deve essere
strettamente integrato nel sistema il che sostanzialmente richiede una
riscrittura di tutta la parte a basso livello.
SQLite e' un gran bel prodotto, l'ho usato piu' volte con Python e mi ha
sempre lasciato soddisfatto, ma e' file-based, va bene per il Nuke o per
il Blog. Ironicamente, SQLite ha piu' funzionalita' di MySQL.
Non c'e' nessuna "battaglia" tra MySQL e PostgreSQL, solo una parte che
urla e l'altra che ride, soprattutto perche' il mercato vende il
servizio, ma se il servizio si infloppa perche' mediocre (quindi certo
non per colpa del fornitore), il mercato se ne lava le mani.
HAND,
  ngw
HTH,
  ngw

 implementare le funzionalita' dei DB veri.
E quali sarebbero i Db veri?

 lo ritieni ancora performante ?
 
Per le esigenze medie della professione di cui stiamo discutendo: SI
Utilizzato da anni senza mai problemi, vuoi parlarmi delle join? 
No grazie, ho altro da fare.

 No grazie, ho altro da fare.
mmh studiare un po' di ER ad esempio?? :-D


 riscrittura di tutta la parte a basso livello.
al momento è finito il porting? o quando lo sarà?
su un forum avevo letto un paio di mesi fa di un utente che ha 
abbondanoato postgresql perchè c'è scarsa assistenza,si riferiva ai 
servizi a pagamento, che quindi dovrebbero garantire una risposta 
sempre, mentre per mysql proprio per la sua enorme diffusione i centri 
assistenza sono moltissimi; faceva poi un esempio di un problema che un 
centro gli ha subito risolto;
al di là di risolvere le problematiche da soli (tramite ng o google)
non c'è possibilità di sottoscrivere un abbonamento annuale per avere 
soccorso immediato per postgresql?
non ricordo se era un problema di assistenza da pate di un centro 
italiano o meno.
com'è la situazione servizio assistenza professionale: in Italia ci sono 
centri o società?


- /\/eoviruz :

E scende l'imbarazzo ...
*Vedi* ? :D
HAND,
  ngw

dovendo iniziare ad impararae ad usare postgresql con il php
è meglio imparare an relazionarlo con il php direttamente tramite pear?
poi pero' negli hosting il pear è sempre compreso?

 per quello che intendi tu un file di testo va più che bene
Sono convinto che Mysql abbia i suoi limiti per alcuni tipi di utilizzo, ma
sinceramente non vedo tutto questo spalare merda ad un db che fa il suo
sporco lavoro in maniera stabile e veloce, e che nel caso di cms via web
riesce a soddisfare la maggior parte delle esigenze.
L'integrazione con php e' ormai consolidata da un bel po' e molte
limitazioni possono essere facilmente scavalcate con qualche riga di codice
in piu'.
Evitiamo pertanto il sarcasmo sull'utilizzo del db o del file di testo.
Se poi vogliamo disquisire sulla licenza, beh posso anche dirti la mia
opinione, ma saremmo estremamente OT.

 *Vedi* ? :D
Nessun imbarazzo, semplicemente mi sono ritrovato troppo spesso in mezzo a
lotte del tipo windows vs. linux, mysql vs postgres, pizza vs lasagne, e
che in genere non portano mai a discussioni interessanti.
Io trovo Mysql estremanente:
-semplice
-stabile
-veloce
-configurabile
sia dal punto di vista di fruitore che di sysadmin, e se devo sopperire alle
sue "carenze" con qualche riga di codice in piu', beh amen, ma non per
questo puoi spalare fuffa su un db che *evidentemente* ti ha fatto qualcosa
di male.
Detto questo, a me frega relativamente poco che tu utilizzi mysql, postgres,
oracle, o MSSQL, l'importante e che ti ci trovi bene per le tue esigenze.

 sue "carenze" con qualche riga di codice in piu', 
esempio di qualche carenza ? e si risolve con molto codice?

 esempio di qualche carenza ? e si risolve con molto codice?
Mah, come faceva notare Lino mari ci sarebbero subquery, join, e altre cose.
Ma il punto e' quanto questa carenza possa influire sull'utilizzo di un Db
per sviluppo web, che in genere non richiede queste cose.
Per quanto riguarda la risoluzione via codice, beh io non ho mai incontrato
grosse difficolta' se non in fase di studio per rendermi la vita meno
complicata, e php viene molto incontro in parecchi casi.

 opinione, ma saremmo estremamente OT.
non discuto della licenza, ma ti ripeto usare mysql per creare una tabella 
ridondante senza la minima logica e senza una minima normalizzazione è 
inutile lo stesso lavoro lo fa benissimo un file di testo.
Pertanto se parliamo di database è bene usarli come tali, creando tabelle, 
relazioni, viste, stored procedure, trigger e non da ultimi gli indici che 
la maggior parte delle volte sono totalmente inesistenti
Altra cosa che viene quasi sempre dimenticata è il tuning di un database 
ovvero la rigenerazione degli indici, i piani di esecuzione, ecc.
Non serve a nulla avere un db super veloce se viene utilizzato male, posso 
documentarti db in mysql sviluppati e mantenuti con il fondo schiena che per 
un singolo insert richiedono dai 20 ai 30 secondi, altra cosa sconosciuta 
alla stragrande maggioranza degli sviluppatori sono le slow queries che 
mysql gestisce con un log apposito, quanti lo consultano e quindi 
ottimizzano le query ?????


 poi pero' negli hosting il pear č sempre compreso?
solitamente sě


 ed ovvia nello sviluppo 3-tiers
su questo non mi esprimo anche se è contro ogni buona regola di
programmazione e soprattutto di scalabilità NON sviluppare barbatrucchi 
quando
una stored procedure permette di separare rdbms dalla logica, cosa normale
ed ovvia nello sviluppo 3-tiers


 
Se il lavoro che devo fare non usa quegli strumenti (ce ne sono tanti di siti 
semplici) perche' non dovrebbe esserlo?
Comunque anche io preferirei usare pgsql o mssql ma se il lavoro e' semplice 
mysql va una meraviglia.
Ciao
--
Danilo

 oracle, o MSSQL, l'importante e che ti ci trovi bene per le tue esigenze.
ci mancherebbe altro ma ti ripeto ogni strumento ha i suoi vantaggi e i suoi 
svantaggi il vantaggio di conoscere altri "prodotti" permette di poter fare 
una comparazione basata su fatti ovviamente ogni cosa va valutata con il 
giusto metro, è da pazzi acquistare una licenza enterprise per processore di 
mssql per la gestione di un guestbook per lavori di questo tipo mysql va 
benissimo, lo stesso non potrei dirlo se vuoi integrare arcview con un 
database gis


 per pear intendi perl??
mi riferivo a pear::db per creare un layer di astrazione tra postgresql 
a php


 oracle, o MSSQL, l'importante e che ti ci trovi bene per le tue esigenze.
Guarda che non ti sto parlando da "utente PostgreSQL che rosica", ma da
"utente MySQL che l'ha usato in contesti sufficientemente grandi da
subire tutte le sue limitazioni", e fidati, dopo mesi di utilizzo lo
conosco *bene*.
Ed e' implementato *male*. E' pieno di trucchi del cavolo per operazioni
*banali*.
Prego: 
http://sql-info.de/mysql/gotchas.html
. Questo me lo sono dovuto
studiare a memoria, dopo l'ennesima volta che mi sono sparato su un
piede (dati corrotti grazie alla *figatona* di BIGNUM - un cumulo di
sensazioni varianti tra lo sconforto ed il divertimento).
Guarda anche la controparte intanto che ci sei.
E le transazioni ? Per favore, sono implementate con i piedi, meglio che
manchi di una funzionalita' piuttosto che venga implementata male. Capisco
che servano *anni* per renderla stabile, ma almeno avere basi solide.
Le transazioni sono *solo* su un tipo di tabella, e sono row-level.
Leggiti qualcosa su MVCC di Pg e dimmi un po'.
Backup ? Anche qui, se usi InnoDB hai qualche labile speranza di
recuperare una soft failure, altrimenti ciao con la manina. Guardati il
Write Ahead Logging di PostgreSQL. Non parliamo del fatto che durante un
backup MySQL esegue un lock della tabella.
E *tante* altre cose, non ultime le varie corruzioni alle tabelle, mi e'
capitato piu' di una volta, ma davvero, e' sparare sulla croce rossa, e
come vedi non ho parlato di funzionalita' mancanti a livello di DBMS.
Implementare le funzionalita' mancanti a PostgreSQL e' un errore
madornale, se fosse cosi' semplice magari lo farebbero loro. E' una
abitudine piu' che diffusa naturalmente, perche' quando pianifichi il
progetto la funzionalita' non serve, poi quando il progetto cresce ti
tocca implementare di tutto (fanno cosi' quasi tutti, in effetti).
Perche' dovrei fare una cosa del genere quando ho gratuitamente una
alternativa ? Per nessuna ragione al mondo.
HTH,
  ngw

 esempio di qualche carenza ? e si risolve con molto codice?
Ma no, un paio didozzine di if/else e hai un db ACID su myIsam.
HAND,
  ngw

 complicata, e php viene molto incontro in parecchi casi.
No scusa, c'e' un bel po' di confusione.
Non avendole *naturalmente* non le usi, o le emuli, ma non e' questo il
punto.
Lo sviluppo web non e' differente da tutti gli altri ambienti, le
carenze di MySQL non sono relative al mantenere, per dire, 3 TeraByte di dati,
ma nel gestire schemi complessi, e se *sai* progettare lo schema di un
database le foreign key le usi, sicuramente se vai ad implementare un
CMS, che mi citavi poco sopra, come usi viste e trigger.
Se io in questo CMS inserisco un articolo e questo articolo ha un
autore, l'autore deve essere una foreign key ad una tabella autori che
contiene i dati su suddetto autore, tanto per fare un esempio
elementare. Sicuramente voglio anche cancellare questo autore nel
momento in cui non ha articoli nel CMS (altro esempio banale).
Si, fallo via codice, ma il tempo che ci metti lo paga il cliente ?
*Oltre* alla licenza di MySQL ABI ? 
"Not my cup of tea" :)
HAND,
  ngw

 poi pero' negli hosting il pear è sempre compreso?
Meglio che prima impari postgres e poi i bindings per i vari linguaggi.
Almeno il tutorial nella doc ufficiale.
Dalla mia esperienza PEAR e' raramente compreso, e IMHO usare i bindings
direttamente e' una scelta migliore, senza il layer sul layer sul layer
:)
HTH,
  ngw

 soccorso immediato per postgresql?
http://www.pgsql.com/
In Italia puoi trovare diversi consulenti sulla ML.
http://www.linuxtime.it/mailman/listinfo/postgresql-it
HAND,
  ngw

 E quali sarebbero i Db veri?
tra i migliori considero:
oracle, db2, sql server.
almeno nella categoria non open source...
-- 
Lino Mari
http://www.ebow.it
 - e-business on web!
http://www.ebow.it/blog/
 - Mktg Log
http://www.dev2dev.it
 - La rete ha connesso nuove particelle - d2D004

 No grazie, ho altro da fare.
ovviamente se devi *pazziare* usa quello che vuoi... ti ba bene anche un txt
o un file xml..


 esigenze.
ti ripeto... se devi pazziare va piů che bene... pero' non dire che č un db
serio per un lavoro serio. punto. sai cos'č un trigger, o una stored
procedure, o un package DTS... senza contare l'utilizzo multiprocessor,
query parallele etc. etc. ci sarebbero altre 100 cose che servono ad un
DBMS...


 *Vedi* ? :D
ma figurati... credo sia in buona fede...
lo stesso vale per chi inizia con vbscript e access... credono di sapere lo
scibile umano... poi li metti di fronte ad una storde e ad un linguaggio un
po' piu' strutturato anche VB6 o 
VB.NET
 e non sanno da dove iniziare... ;)


 queste cose.
non sno molto d'accordo... nel senso che da qualche tempo le applicaizoni
web sono diventate e lo saranno sempre di più delle vere applicazioni
critiche nella gestione aziendale e strategica... quindi hanno bisogno di
tecnologie robuste...


 tuning.
come tutte le cose... of course...


 E quali sarebbero i Db veri?
oracle se sei ricco.
altrimenti postgresql.

 altrimenti postgresql.
diciamo che puoi ampliare un po' il ventaglio aggiungendo
mssql (fa sempre parte della categoria ricchi) e firebird
