sitio hackeado

Alvaro Herrera alvherre en alvh.no-ip.org
Mie Nov 30 14:25:26 CLST 2005


PEIRANO ALVARADO, GINO PAOLO escribió:

> que hay de Mysql 5??? alguna experiencia...benchmarks??
> se supone que mejoraron muchas cosas, entre ellas, la posibilidad
> de consultas, triggers y proc. almacenados... quizas sea una pequenna
> alternativa, habra que hecharle un ojo y ver como se porta...

Hola, desde hace un tiempo no me gusta meterme en guerras santas, asi
que voy a omitir comentarios que no sean totalmente objetivos.  El
comentario objetivo que puedo hacer es que el soporte para estas cosas
en MySQL 5 esta mucho mas que muy verde; como por ejemplo el tema de que
en los triggers no puedes hacer accesos a tablas; o como que las llaves
foraneas no soportan la capacidad de ser disparadas "mas tarde" en la
transaccion ("deferred") ni soportan clausulas ON UPDATE.

Tu diras, ah, pero eso son "tonteras" o pelos de la cola, o son
"caracteristicas mas avanzadas para las que podemos esperar un poco
mas".  Pero la verdad es que sin eso, la gente que dice "los triggers no
sirven para nada que no se pueda hacer en la aplicacion" tiene mucha
razon -- asi como estan, no sirven para nada.  Cuando estan bien
implementados la cosa es muy distinta.


La verdad es que todas estas limitaciones hablan de caracteristicas que
fueron implementadas a la rapida, para satisfacer los "buzzwords" y a la
prensa, no para darle herramientas utiles a los usuarios.  Estaran estas
cosas implementadas _bien_ en el futuro?  Es muy posible que si, pero
por que no decir _ahora_ que el soporte de triggers aun es "alpha" o
"experimental", cuando realmente eso es lo que es?

Postgres tiene todas estas cosas implementadas desde hace _años_.  En
todo este tiempo se han ido afinando, mejorando, ajustando; ese proceso
largo y tedioso MySQL aun no lo ha hecho y no lo va a hacer de un dia
para otro.


Quieres hacer mediciones de rendimiento?  Haz todas las que quieras;
pero se justo y usa tablas InnoDB en MySQL, comparando cosas
interesantes.  Creo que puedo prever el resultado: el rendimiento para
consultas triviales sera equivalente entre MySQL y Postgres, mientras
que en consultas complejas PostgreSQL lo deja muy atras porque el
optimizador de consultas de MySQL esta aun muy verde (como casi todo lo
demas).

Pero francamente a mi no me interesan los resultados del rendimiento.
_Primero_ quiero un sistema que funcione bien.  Las optimizaciones se
pueden hacer despues.  Pero si empiezas haciendo un sistema que ande muy
rapido y despues lo modificas para que haga cosas, entonces se va a ir
haciendo cada vez mas lento ... lo cual hace que no tenga mucho sentido,
verdad?  Con Postgres esto ha dado excelentes resultados.  El sistema
hacia muchas cosas al principio, pero era muy lento.  Hoy en dia es
muchisimo mas rapido, y sigue haciendo las mismas cosas, y hace otras
nuevas con las que MySQL ni sueña.

-- 
Alvaro Herrera                  http://www.amazon.com/gp/registry/5ZYLFMCVHXC
Dios hizo a Adán, pero fue Eva quien lo hizo hombre.


Más información sobre la lista de distribución Linux