Todo depende de lo que quieras hacer con ella. Estoy de acuerdo en que aún no es comparable con oracle, pero no es tan de juguete.
Sin ir más lejos, creo recordar que slashcode (barrapunto y slashdot incluídos) funciona con MySql por debajo, y el rendimiento parece bastante bueno.
-- La boca de mi gato huele a comida de gato -- Ralph
La gran desventaja de MySQL siempre ha sido la carencia de prestaciones como la integridad referencial, las vistas, los procedimientos almacenados, las subconsultas.... y su ventaja la rapidez y el poco uso de memoria. Vamos, que parecía pensado para aplicaciones web, que no suelen tener grandes requisitos técnicos pero necesitan velocidad y que aguante muchos usuarios simultáneos.
Las nuevas prestaciones de MySQL 4 están muy bien y las de la próxima versión estarán mejor pero... al precio de reducir la velocidad y aumentar el uso de memoria. De modo que no sé cuanta gente los empleará en su nicho de mercado habitual. Yo mismo no puedo pasar mi aplicación a InnoDB si quiero que la web siga arriba. :-(
-- Daniel Rodríguez (redliberal.com, liberalismo.org, juandemariana.org)
Hola. Te voy a poner un ejemplillo de cada cosa, usando como base de datos PostgreSQL. Como es muy probable que exista algún error en el texto, se admiten correcciones ;)
Integridad referencial: Imaginemos que tenemos una tabla "clientes" con dos columnas, "id_cliente" y "nombre", por ejemplo. Podríamos crear otra tabla llamada "dni_clientes", con dos columnas, "id_cliente" y "dni". La columna "id_cliente" de "dni_clientes" la crearíamos como una clave ajena (foreign key) que apunta a la columna con el mismo nombre (aunque no tendría por qué) de la tabla "clientes". Crearíamos la segunda tabla así:
Por mantener la integridad referencial entiendo que es mantener la correspondencia de las claves ajenas entre las tablas.
Vistas: Se usan para consultas complejas, y son como una forma de encapsular consultas. Ejemplo:
create view mi_vista as
select nombre,dni from clientes, dni_clientes
where clientes.id_cliente=dni_clientes.id_cliente
Podríamos hacer una consulta sobre esa vista, como si se tratase de una tabla. Ejemplo:
select nombre,dni from mi_vista where nombre="pepe";
En este caso no sería muy útil ya que podríamos haber obtenido los mismos resultados sin recurrir a una vista, pero es sólo un ejemplo :)
Procedimientos almacenados: son procedimientos escritos en un lenguaje determinado que se almacenan en la base de datos. En Oracle el lenguaje es PL/SQL, en PostgreSQL es PLPG/SQL. Ejemplo de una función en PLPG/SQL:
create function nuevo_cliente(integer,integer,varchar)
returns integer as '
declare
par_id_cliente alias for $1;
par_dni alias for $2;
par_nombre alias for $3;
begin
insert into clientes
(id_cliente,nombre)
values
(par_id_cliente,par_nombre);
insert into dni_clientes
(id_cliente,dni)
values
(par_id_cliente,par_dni);
return id_cliente;
end;' language 'plpgsql';
Después, para usarla haríamos algo como:
select nuevo_cliente('8','92389924','pepe');
Eso introduciría un nuevo cliente en las tablas "clientes" y "dni_clientes".
Subconsultas: Creo que se refiere a esto:
select dni from (select id_cliente,dni,nombre from clientes,dni_clientes where clientes.id_cliente=dni_clientes.id_cliente) where id_cliente>6;
Aunque también puede referirse a esto:
select id_cliente,dni,(select id_cliente as id_cliente2,nombre from nombres)
where id_cliente=id_cliente2;
Como ves, la presencia de estas funcionalidades en una base de datos multiplica (y por un factor elevado) el número de posibilidades a la hora de realizar operaciones con la base de datos.
Si quieres aprender bien estas cosas (y muchas otras que desconocerás si sólo has usado MySQL) de forma amena y sin leer tropecientos manuales, te recomiendo el libro online SQL for web nerds [greenspun.com], de Philip Greenspun. Parte de ejemplos básicos y va complicando las consultas, introduciendo los nuevos conceptos necesarios para realizarlas. Creo recordar que los ejemplos de código están hechos para Oracle, pero para coger el concepto es más que de sobra, luego sólo cambia la sintaxis.
saludos
--
You laugh at me because I am different, I laugh at you because you are all the same
Ya veo que MySQL está mejorando notablemente, y que empieza a ofrecer características que las empresas requieren, pero de ahí a planteárselo como alternativa a Oracle!!.
Seamos serios, MySQL lo tiene crudo contra SQLServer y no digamos ya contra Oracle!.
Puede que MySQL pueda servir para determinadas tareas en entornos profesionales (sobretodo de backend en servicios Web), e incluso que muchas empresas se puedan plantear su utilización en producción (como sustituto a servidores de Bases de Datos antiguos y a sistemas basados en Access o bases de datos pequeñas), pero si se trata de aplicaciones “pesadas”, y con esto me refiero a aplicaciones que hagan un uso extensivo de la base de datos, o aplicaciones críticas, la verdad es que no veo que sea una base de datos suficientemente madura.
En la versión 5.0 habrá soporte para “Stored Procedures”(Oracle y SQLServer lo tienen desde hace tiempo, por no decir desde siempre), soporte elemental para cursores (Elemental?, Oracle lo tiene completo y más que sobrado), soporte real de VARCHAR, entre otros. Pero, esto son novedades, que seguramente carecerán de ciertas características, como es lógico en algo nuevo, y la verdad, en aplicaciones “grandes” esto no es tolerable.
En resumen, MySQL es una buena opción para determinadas tareas, siempre y cuando no requieran demasiado de una base de datos, y sobretodo si lo mas importante es la velocidad, pero no es una alternativa a Oracle, aún le falta mucho para eso.
Está claro que MySQL no tiene nada que ver con Oracle. También está claro que MySQL no le puede llegar en prestaciones a SQL Server, DB2 o cualquier RDBMS que querais, pero lo que sí que está claro es que su popularidad lo hace el sistema con más instalaciones en el mundo (esto NO es un dato, es una impresión). Nadie puede negar que dónde haya un servidor web cuyas paginas tengan que almacenar o manejar datos, es áltamente probable que haya un MySQL detrás. Esto no deja de ser una garantía.
Hay un nicho del mercado que está más que cubierto, casi sin darnos cuenta: Las bases de datos de escritorio. ¿Que sistema de Bases de datos puede competir con Access realmente?. Cualquier Oracle, PostgreSQL o Interbase es excesivo y no es comparable. Tampoco me vale sistemas que son anticuados por naturaleza (lease: dbase o similares). Aunque Access tenga sus virtudes, lo único que realmente le salva como sistema de B.B.D.D es que viene con MS Office, MS Office que está instalado (legalmente o no) en la mayoría de los PC con Windows de este planeta (desgraciadamente la mayoría de los PC). Esto es lo que lo hace ¿"potente"? ¿"interesante"? ¿"..."?. Pues como este es una gran baza la que tiene MySQL: popularidad.
Siempre pongo un ejemplo: Interbase (sustituyase por FireBird según el caso OpenSource VS Comercial). Es una joya, lo tiene todo y desde siempre, algo que la mayoría no pueden decir (p.e. en Oracle 8i no se puede usar la cláusula join en un select, hay q hacerlo a mano). ¿Por qué Interbase no es tan usado como debería ser? : no es el precio, cuesta igual que SQLServer (obviando la posibilidad de Firebird), no son las prestaciones (ya he hablado de ellas), no es la velocidad (preguntad a los que la usan)... Es lo mal que lo hizo Borland con su puñetera manía de no comercializar los productos en condiciones. Si Borland le hubiese puesto una buena campaña, ahora posiblemente estaríamos hablando de interbase en vez de otra cosa.
El hecho que cuando se le añaden opciones (vease: Integridad Referencial, Transacciones, Subconsultas o ahora los procedimientos almacenados y demás) le resta velocidad e incrementa el uso de memoria es innegable. Lo que también ha de saber aquel que lo haya usado de verdad es que todas estas herramientas pueden no usarse, sencillamente diciendo que tu tabla no es innodb. Entonces te encuentras con el MySQL veloz y pequeño que tenías en la versión 3.23, solo que mejorado por el paso del tiempo. Lo que era cierto hace 3 años lo sigue siendo ahora, solo que tienes la posibilidad de usarlo para otros menesteres.
Moraleja: Lo interesante es que poco a poco están haciendo del MySQL un RDBMS con todas las de la ley y manteniendo (para el que lo quiera) su tradición de rápido y pequeño. Me parece una acertadísima estrategia.
No hago mas que ver que mysql es lento comparado con oracle o que oracle es blablabla... pero vamos a ver, yo como desarrollador de aplicaciones para pymes con un volumen de datos lógico para una empresa de este tipo... que ventajas puede aportarme usar oracle frente a mysql? yo veo servidores web con grandes volúmenes de datos y cientos de usuarios trabajando a la vez y no parecen existir muchos problemas... o si que los hay?
Y es que la pyme es precisamente el sector mas importante a la hora de captar clientes... salvo esos ¿afortunados? que logran contratos de desarrollo con grandes empresas como ibm o telefónica... pero a esos el cobrarles diez o veinte mil euros mas les da risa... ¿o me equivoco? es posible
Sinceramente, prefiero ahorrarle unas pelillas al cliente que se va a quedar mas contento ahorrándose unos duros que si le cuentas las maravillas de oracle. O mejor aún, se le cobra un poquito mas y ese pico se dona a mysql o cualquier otro proyecto OS. ¿Soy el único que piensa así?
Algo que me ha llamado la atención es el tema de la replicación. ¿Acaso ahora se puede automatizar el mantener dos equipos con la misma información? Esto es genial para el tema de backups y demas.
por
pobrecito hablador
el Domingo, 18 Enero de 2004, 05:42h
(#255175)
Yo he intentado hacer dos de mis proyectos en PostgreSql y me he cansado, cada ves que queria sacar un campo o introducir un blob en una de las bases se pudria todo, diez mil vueltas para hacer cosas simples, y si queres hacer un triger tenes que hacer un store procedure para que sea llamado por el triger, y que si cambio un nombre en un campo tengo que reconstruir todas las vistas porque quedan mochas( bueno en SQL Server cuando agregas un campo pasa lo mismo).
Y no me vengan con eso del diseño de base de datos porque hace 4 años que estoy en esto y siempre necesitas hacer modificaciones al momento de implementar. Tambien cuando necesite laburar groso Firebird me dejo tirado y tuve que usar SQL Server.
Todas las bases de datos que se han mentado en la noticia y en los comentarios son maravillosas porque pueden hacer millones de cosas.
Sin embargo, hay mucha gente que las usa para bases de datos muy pequeñas como las de sitios web con poco contenido y sin muchas visitas, colección de discos, vídeos, libros..., lo cual es un desperdicio de recursos y eficiencia, pues sqlite puede ser el candidato idóneo en estos casos. Consume muy pocos recursos y es rapidísima. Hay frontends gráficos; esto la posibilita para ser una alternativa real a Access.
Si algún día tuviera que crear una base de datos de millones de registros y muchas consultas simultáneas mi elección sería una de esas super bases de datos. Para lo demás, sqlite es lo más efectivo, ¿estáis de acuerdo?
--
Ejecuta este comando (Linux irá más rápido):
rato(){ (rato|rato|rato) };rato
Re:Me quedo con sqlite
de pobrecito hablador
(Puntos:0)
Domingo, 18 Enero de 2004, 11:27h
por
pobrecito hablador
el Domingo, 18 Enero de 2004, 09:48h
(#255206)
Los procedimientos almacenados, triggers, integridad referencial y transacciones cargan la responsabilidad de la integridad de la base de datos sobre el servidor, y liberan al cliente de dicho trabajo.
Esto, en general, es importantismo. El diseñador de la base de datos no necesita confiar en que el lado cliente haga las cosas bien, en general el servidor puede rechazar operaciones incorrectas. Sin embargo, tiene un precio: velocidad en las inserciones, modificaciones y borrado. Aunque no hagamos uso de estas características, si un gestor de base de datos las soporta, penaliza las modificaciones. Pureba a insertar 1000 registros en un MySQL de las primeras versiones y en un PostgreSQL sin utilziar triggers ni integrida referencia.... un abismo.
Yo no me atrevería a hacer un programa con datos sensibles sin las características avanzadas, especialmente una base de datos a la que el usuario puede tener acceso. Sin embargo, para una base de datos simple, en internet, donde sólo el programa que yo he hecho puede entrar, hay media docena de tablas, estoy dispuesto a renunciar a las características avanzadas (quizá, salvo transaciones) a cambio de velocidad.
Además, la verdad últimamente prefiero una arquitectura three-teer, (es decir, un servidor intermedio que recibe las peticiones del cliente y las manda a la base de datos) en lugar del clásico cliente/servidor. En el three-teer programas en el lenguaje que te da la gana, en lugar de en un lenguaje pobre y farragoso de SQL-XX. Y si a este cliente le quiero colocar un Interbase, al tro na un informix, y al de más allá un PostgreSQL, no tengo que reprogramar todos los procedimientos y triggers.
En resumen, hay dos tipos de bases de datos: a) Grandes, pesadas y fiables. b) Ligeras sin caracteristcas avanzadas y la fiabildiad en el cliente. No creo que MySQL haga bien en moverse de lo que era hasta ahora: Una base de datos ligera.
Re:¿Vale la pena?
de pobrecito hablador
(Puntos:0)
Domingo, 18 Enero de 2004, 10:46h
por
pobrecito hablador
el Domingo, 18 Enero de 2004, 10:57h
(#255243)
Hace un tiempo miré MySQL...estaba muy bien...supongo que hay muchas cosas para las cuales MySQL responde con creces...pero tiene demasiadas limitaciones para extenderse a todo tipo de usos.
Lo más crítico que encontré son por un lado las vistas y por otro las queries dentro de queries (o sea, que en vez de una tabla en el from ponga una query o que en el where ponga un in, un exists o un igual a un resultado de una query..y todo esto, recursivo). Puede que, por ejemplo, en sites como barrapunto, no sean necesarias, pero hay momentos que no hay más remedio. Ahora me podréis responder se puede poner la lógica en el programa...pero no es lo mismo...
Estoy convencido que con el esfuerzo de todos se podrá llegar a tener una BD como Dios manda...de hecho ya tenemos un SO cojonudo (verdad, señores de SCO? ;) )...pero aún tardaremos un poco...
A mi una de las cosas que más me molestan de MySQL son ciertos comportamientos claramente no-estándar [sql-info.de], resultado de tener que añadir funcionalidades no planteadas en origen(ejemplo [mysql.com]), y que no se cambiarán a corto-medio plazo para no romper todas las aplicaciones que dependan de ellas.
En cualquier caso, coincido con la opinión mayoritaria: MySQL tiene su nicho y con todo el apoyo que está teniendo es posible que en unos años iguale en funcionalidades a PostGres/FireBird. Esperemos que vayan afinando también estas cosas.
--
Programs should be written for people to read,
and only incidentally for machines to execute
por
pobrecito hablador
el Domingo, 18 Enero de 2004, 15:30h
(#255369)
Mysql no tiene futuro. Y no lo digo porque técnicamente sea buena o mala, lo digo por el tipo de licencia que le proteje.
No me salteís aún al cuello a defender la GPL, pues no hablo de la GPL. Hablo de los "pequeños añadidos" que tiene, los cuales entran en clara contradicción con la GPL. (¿Se invalidan entonces ambas licencias?).
En la web de mysql, vemos que hay que adquirir normalmente la licencia si vamos a trabajar con una aplicación propietaria que necesite una BBDD:
"The Commercial License is an agreement with MySQL AB for organizations that do not want to release their application source code. Commercially licensed customers get a commercially supported product with assurances from MySQL. Commercially licensed users are also free from the requirement of making their own application open source." (http://www.mysql.com/products/commercial-license. html).
Bien, por otro lado y observando la GPL:
"What is the difference between "mere aggregation" and "combining two modules into one program"?
Mere aggregation of two programs means putting them side by side on the same CD-ROM or hard disk. We use this term in the case where they are separate programs, not parts of a single program. In this case, if one of the programs is covered by the GPL, it has no effect on the other program.
Combining two modules means connecting them together so that they form a single larger program. If either part is covered by the GPL, the whole combination must also be released under the GPL--if you can't, or won't, do that, you may not combine them.
What constitutes combining two parts into one program? This is a legal question, which ultimately judges will decide. We believe that a proper criterion depends both on the mechanism of communication (exec, pipes, rpc, function calls within a shared address space, etc.) and the semantics of the communication (what kinds of information are interchanged). "
(http://www.fsf.org/licenses/gpl-faq.html#MereAggr egation).
Visto esto además tengo una duda. ¿Están engañando esta gente a la "comunidad"? ¿Esta práctica la usan más compañias? Nos están "vendiendo" un producto como GPL para que la mejore la comunidad mientras que no es GPL.
Además, en cuanto ves esto, ves el impedimento que tiene para que una empresa lo adquiera (¿Para qué quiero gastarme dinero en mysql si ya tengo la otra? o ¿Para que comprar Mysql si Postgress es gratuita?).
Bueno, saludos y a ver si alguien me puede iluminar porque no sé si voy un poco perdido con esto ;)
por
pobrecito hablador
el Lunes, 19 Enero de 2004, 09:56h
(#255617)
Que es una forma educada de decir "no me la juego con el ni aunque me emborraches y secuestres a mi hija".
MySQL es un juguete. Aceptalo.
No se puede comparar con bases de datos de verdad como Oracle o DB2. Ni hoy ni dentro de diez años. Ahora mismo estan a años de desarrollo de MySQL, y cuando MySQL haya avanzado, ellos estaran mas lejos porque a su vez seguiran desarrollandose.
Y no te estoy hablando de "florituras inutiles" como vistas, trigers, procedimientos u otras cosas que no se usan en la vida real (es ironia, claro), si no de cuestiones de eficiencia con GRANDES cantidades de datos. MySQL tal vez de resultados rapido en un blog, pero me gustaria saber como se las apañaria para dar resultados de una tabla con 15 millones de filas (en los bancos y aseguradoras esa es una tabla pequeña) mas rapido que DB2. Sobre todo si se molesta en "pequeñeces" como gestionar las paginas sucias, escalar bloqueos y cosas de esas.
Mira, puedes decir que MySQL puede sustituir a Access y mantenerlo sin que te pongan colorado porque POR FIN tiene transacciones (¡¡¡HAN HECHO FALTA 4 VERSIONES!!!) y Access ya no se desarrolla mas, pero no lo mezcles con los sgbd de verdad...
(me da igual la puntuacion, asi que despacharos a gusto, pero vuestra aplicacion favorita no es un sistema gestor de bases de datos de verdad. Y si algun dia llega a serlo, sera mas lento, pesado y tendra los fallos que los de verdad llevan diez años o mas arreglando)
Parece que la única aplicación que tienen las bases de datos es para casi todos vosotros que, como veo, trabajáis en bancos. Qué chupimaravilla, pero joder, cada cosa tiene un lugar de aplicación y creo que por aquí se debería entender cual es la de cual, es como si ahora me vengo a quejar de que Oracle es un armatoste porque no me viene bien para aplicar en mi servidor personal donde tengo un weblog.
NO
(Puntos:0)Re:no pero tampoco hay que exagerar
(Puntos:4, Interesante)( Última bitácora: Viernes, 17 Septiembre de 2004, 11:33h )
Sin ir más lejos, creo recordar que slashcode (barrapunto y slashdot incluídos) funciona con MySql por debajo, y el rendimiento parece bastante bueno.
La boca de mi gato huele a comida de gato -- Ralph
MySQL va a terminar en MyPostgreSQL
(Puntos:4, Interesante)( http://www.redliberal.com/ )
Las nuevas prestaciones de MySQL 4 están muy bien y las de la próxima versión estarán mejor pero... al precio de reducir la velocidad y aumentar el uso de memoria. De modo que no sé cuanta gente los empleará en su nicho de mercado habitual. Yo mismo no puedo pasar mi aplicación a InnoDB si quiero que la web siga arriba. :-(
Daniel Rodríguez (redliberal.com, liberalismo.org, juandemariana.org)
Re:Features avanzadas
(Puntos:5, Interesante)( http://barrapunto.com/ )
Integridad referencial: Imaginemos que tenemos una tabla "clientes" con dos columnas, "id_cliente" y "nombre", por ejemplo. Podríamos crear otra tabla llamada "dni_clientes", con dos columnas, "id_cliente" y "dni". La columna "id_cliente" de "dni_clientes" la crearíamos como una clave ajena (foreign key) que apunta a la columna con el mismo nombre (aunque no tendría por qué) de la tabla "clientes". Crearíamos la segunda tabla así:
Por mantener la integridad referencial entiendo que es mantener la correspondencia de las claves ajenas entre las tablas.
Vistas: Se usan para consultas complejas, y son como una forma de encapsular consultas. Ejemplo:
Podríamos hacer una consulta sobre esa vista, como si se tratase de una tabla. Ejemplo:
En este caso no sería muy útil ya que podríamos haber obtenido los mismos resultados sin recurrir a una vista, pero es sólo un ejemplo :)
Procedimientos almacenados: son procedimientos escritos en un lenguaje determinado que se almacenan en la base de datos. En Oracle el lenguaje es PL/SQL, en PostgreSQL es PLPG/SQL. Ejemplo de una función en PLPG/SQL:
Después, para usarla haríamos algo como:
Eso introduciría un nuevo cliente en las tablas "clientes" y "dni_clientes".
Subconsultas: Creo que se refiere a esto:
Aunque también puede referirse a esto:
Como ves, la presencia de estas funcionalidades en una base de datos multiplica (y por un factor elevado) el número de posibilidades a la hora de realizar operaciones con la base de datos.
Si quieres aprender bien estas cosas (y muchas otras que desconocerás si sólo has usado MySQL) de forma amena y sin leer tropecientos manuales, te recomiendo el libro online SQL for web nerds [greenspun.com], de Philip Greenspun. Parte de ejemplos básicos y va complicando las consultas, introduciendo los nuevos conceptos necesarios para realizarlas. Creo recordar que los ejemplos de código están hechos para Oracle, pero para coger el concepto es más que de sobra, luego sólo cambia la sintaxis.
saludos
You laugh at me because I am different, I laugh at you because you are all the same
Oracle por MySQL?!?!
(Puntos:2, Informativo)( http://barrapunto.com/ | Última bitácora: Jueves, 10 Febrero de 2011, 12:31h )
Ya veo que MySQL está mejorando notablemente, y que empieza a ofrecer características que las empresas requieren, pero de ahí a planteárselo como alternativa a Oracle!!.
Seamos serios, MySQL lo tiene crudo contra SQLServer y no digamos ya contra Oracle!.
Puede que MySQL pueda servir para determinadas tareas en entornos profesionales (sobretodo de backend en servicios Web), e incluso que muchas empresas se puedan plantear su utilización en producción (como sustituto a servidores de Bases de Datos antiguos y a sistemas basados en Access o bases de datos pequeñas), pero si se trata de aplicaciones “pesadas”, y con esto me refiero a aplicaciones que hagan un uso extensivo de la base de datos, o aplicaciones críticas, la verdad es que no veo que sea una base de datos suficientemente madura.
En la versión 5.0 habrá soporte para “Stored Procedures”(Oracle y SQLServer lo tienen desde hace tiempo, por no decir desde siempre), soporte elemental para cursores (Elemental?, Oracle lo tiene completo y más que sobrado), soporte real de VARCHAR, entre otros. Pero, esto son novedades, que seguramente carecerán de ciertas características, como es lógico en algo nuevo, y la verdad, en aplicaciones “grandes” esto no es tolerable.
En resumen, MySQL es una buena opción para determinadas tareas, siempre y cuando no requieran demasiado de una base de datos, y sobretodo si lo mas importante es la velocidad, pero no es una alternativa a Oracle, aún le falta mucho para eso.
¿y Postgre?
(Puntos:0)¿Cómo está PostgreSQL en ese ranking?
No todo lo importante son las prestaciones
(Puntos:4, Interesante)( http://barrapunto.com/ )
Hay un nicho del mercado que está más que cubierto, casi sin darnos cuenta: Las bases de datos de escritorio. ¿Que sistema de Bases de datos puede competir con Access realmente?. Cualquier Oracle, PostgreSQL o Interbase es excesivo y no es comparable. Tampoco me vale sistemas que son anticuados por naturaleza (lease: dbase o similares). Aunque Access tenga sus virtudes, lo único que realmente le salva como sistema de B.B.D.D es que viene con MS Office, MS Office que está instalado (legalmente o no) en la mayoría de los PC con Windows de este planeta (desgraciadamente la mayoría de los PC). Esto es lo que lo hace ¿"potente"? ¿"interesante"? ¿"..."?. Pues como este es una gran baza la que tiene MySQL: popularidad.
Siempre pongo un ejemplo: Interbase (sustituyase por FireBird según el caso OpenSource VS Comercial). Es una joya, lo tiene todo y desde siempre, algo que la mayoría no pueden decir (p.e. en Oracle 8i no se puede usar la cláusula join en un select, hay q hacerlo a mano). ¿Por qué Interbase no es tan usado como debería ser? : no es el precio, cuesta igual que SQLServer (obviando la posibilidad de Firebird), no son las prestaciones (ya he hablado de ellas), no es la velocidad (preguntad a los que la usan)... Es lo mal que lo hizo Borland con su puñetera manía de no comercializar los productos en condiciones. Si Borland le hubiese puesto una buena campaña, ahora posiblemente estaríamos hablando de interbase en vez de otra cosa.
El hecho que cuando se le añaden opciones (vease: Integridad Referencial, Transacciones, Subconsultas o ahora los procedimientos almacenados y demás) le resta velocidad e incrementa el uso de memoria es innegable. Lo que también ha de saber aquel que lo haya usado de verdad es que todas estas herramientas pueden no usarse, sencillamente diciendo que tu tabla no es innodb. Entonces te encuentras con el MySQL veloz y pequeño que tenías en la versión 3.23, solo que mejorado por el paso del tiempo. Lo que era cierto hace 3 años lo sigue siendo ahora, solo que tienes la posibilidad de usarlo para otros menesteres.
Moraleja: Lo interesante es que poco a poco están haciendo del MySQL un RDBMS con todas las de la ley y manteniendo (para el que lo quiera) su tradición de rápido y pequeño. Me parece una acertadísima estrategia.
Kisses for the kids
Jackoman
la situación de las pymes en España
(Puntos:2, Interesante)( http://www.alexmoreno.net/ )
No hago mas que ver que mysql es lento comparado con oracle o que oracle es blablabla... pero vamos a ver, yo como desarrollador de aplicaciones para pymes con un volumen de datos lógico para una empresa de este tipo... que ventajas puede aportarme usar oracle frente a mysql? yo veo servidores web con grandes volúmenes de datos y cientos de usuarios trabajando a la vez y no parecen existir muchos problemas... o si que los hay?
Y es que la pyme es precisamente el sector mas importante a la hora de captar clientes... salvo esos ¿afortunados? que logran contratos de desarrollo con grandes empresas como ibm o telefónica... pero a esos el cobrarles diez o veinte mil euros mas les da risa... ¿o me equivoco? es posible
Sinceramente, prefiero ahorrarle unas pelillas al cliente que se va a quedar mas contento ahorrándose unos duros que si le cuentas las maravillas de oracle. O mejor aún, se le cobra un poquito mas y ese pico se dona a mysql o cualquier otro proyecto OS. ¿Soy el único que piensa así?
Algo que me ha llamado la atención es el tema de la replicación. ¿Acaso ahora se puede automatizar el mantener dos equipos con la misma información? Esto es genial para el tema de backups y demas.
Comodidad y rapides de desarrollo
(Puntos:0)Y no me vengan con eso del diseño de base de datos porque hace 4 años que estoy en esto y siempre necesitas hacer modificaciones al momento de implementar. Tambien cuando necesite laburar groso Firebird me dejo tirado y tuve que usar SQL Server.
MaxDB
(Puntos:0)Me quedo con sqlite
(Puntos:1)( http://barrapunto.com/~Rato/journal/ | Última bitácora: Martes, 05 Junio de 2007, 20:54h )
Todas las bases de datos que se han mentado en la noticia y en los comentarios son maravillosas porque pueden hacer millones de cosas.
Sin embargo, hay mucha gente que las usa para bases de datos muy pequeñas como las de sitios web con poco contenido y sin muchas visitas, colección de discos, vídeos, libros..., lo cual es un desperdicio de recursos y eficiencia, pues sqlite puede ser el candidato idóneo en estos casos. Consume muy pocos recursos y es rapidísima. Hay frontends gráficos; esto la posibilita para ser una alternativa real a Access.
Si algún día tuviera que crear una base de datos de millones de registros y muchas consultas simultáneas mi elección sería una de esas super bases de datos. Para lo demás, sqlite es lo más efectivo, ¿estáis de acuerdo?
Ejecuta este comando (Linux irá más rápido):
rato(){ (rato|rato|rato) };rato
%-P
(Puntos:0)(De OSNews)
http://www.microsoft-watch.com/article2/0,4248,144 1400,00.asp
Seréis asimilados.
(··)/"" M.A.
¿Vale la pena?
(Puntos:2, Interesante)Los procedimientos almacenados, triggers, integridad referencial y transacciones cargan la responsabilidad de la integridad de la base de datos sobre el servidor, y liberan al cliente de dicho trabajo.
Esto, en general, es importantismo. El diseñador de la base de datos no necesita confiar en que el lado cliente haga las cosas bien, en general el servidor puede rechazar operaciones incorrectas. Sin embargo, tiene un precio: velocidad en las inserciones, modificaciones y borrado. Aunque no hagamos uso de estas características, si un gestor de base de datos las soporta, penaliza las modificaciones. Pureba a insertar 1000 registros en un MySQL de las primeras versiones y en un PostgreSQL sin utilziar triggers ni integrida referencia.... un abismo.
Yo no me atrevería a hacer un programa con datos sensibles sin las características avanzadas, especialmente una base de datos a la que el usuario puede tener acceso. Sin embargo, para una base de datos simple, en internet, donde sólo el programa que yo he hecho puede entrar, hay media docena de tablas, estoy dispuesto a renunciar a las características avanzadas (quizá, salvo transaciones) a cambio de velocidad.
Además, la verdad últimamente prefiero una arquitectura three-teer, (es decir, un servidor intermedio que recibe las peticiones del cliente y las manda a la base de datos) en lugar del clásico cliente/servidor. En el three-teer programas en el lenguaje que te da la gana, en lugar de en un lenguaje pobre y farragoso de SQL-XX. Y si a este cliente le quiero colocar un Interbase, al tro na un informix, y al de más allá un PostgreSQL, no tengo que reprogramar todos los procedimientos y triggers.
En resumen, hay dos tipos de bases de datos: a) Grandes, pesadas y fiables. b) Ligeras sin caracteristcas avanzadas y la fiabildiad en el cliente. No creo que MySQL haga bien en moverse de lo que era hasta ahora: Una base de datos ligera.
Teniendo encuenta que algunas usan ACCESS...
(Puntos:2)( http://nachoproy.wordpress.com/ | Última bitácora: Jueves, 02 Marzo de 2006, 15:44h )
Empty your mind. Be formless, shapeless. Like freedom. You put GNU/Linux into a bottle and it becomes the bottle. You pu
De momento...no
(Puntos:0)Elegir según cómo cuesta trabajo programar
(Puntos:0)Y para los problemas pequeños y rápidos, mejor se recomienda MySQL decente como la versión 4.x.
open4free
MySQL Gotchas
(Puntos:2)( Última bitácora: Lunes, 22 Febrero de 2016, 07:16h )
A mi una de las cosas que más me molestan de MySQL son ciertos comportamientos claramente no-estándar [sql-info.de], resultado de tener que añadir funcionalidades no planteadas en origen(ejemplo [mysql.com]), y que no se cambiarán a corto-medio plazo para no romper todas las aplicaciones que dependan de ellas.
En cualquier caso, coincido con la opinión mayoritaria: MySQL tiene su nicho y con todo el apoyo que está teniendo es posible que en unos años iguale en funcionalidades a PostGres/FireBird. Esperemos que vayan afinando también estas cosas.
Programs should be written for people to read, and only incidentally for machines to execute
No tiene futuro mysql
(Puntos:1, Interesante)No me salteís aún al cuello a defender la GPL, pues no hablo de la GPL. Hablo de los "pequeños añadidos" que tiene, los cuales entran en clara contradicción con la GPL. (¿Se invalidan entonces ambas licencias?).
En la web de mysql, vemos que hay que adquirir normalmente la licencia si vamos a trabajar con una aplicación propietaria que necesite una BBDD:
"The Commercial License is an agreement with MySQL AB for organizations that do not want to release their application source code. Commercially licensed customers get a commercially supported product with assurances from MySQL. Commercially licensed users are also free from the requirement of making their own application open source." (http://www.mysql.com/products/commercial-license. html).
Bien, por otro lado y observando la GPL:
"What is the difference between "mere aggregation" and "combining two modules into one program"?
Mere aggregation of two programs means putting them side by side on the same CD-ROM or hard disk. We use this term in the case where they are separate programs, not parts of a single program. In this case, if one of the programs is covered by the GPL, it has no effect on the other program.
Combining two modules means connecting them together so that they form a single larger program. If either part is covered by the GPL, the whole combination must also be released under the GPL--if you can't, or won't, do that, you may not combine them.
What constitutes combining two parts into one program? This is a legal question, which ultimately judges will decide. We believe that a proper criterion depends both on the mechanism of communication (exec, pipes, rpc, function calls within a shared address space, etc.) and the semantics of the communication (what kinds of information are interchanged). "
(http://www.fsf.org/licenses/gpl-faq.html#MereAggr egation).
Visto esto además tengo una duda. ¿Están engañando esta gente a la "comunidad"? ¿Esta práctica la usan más compañias? Nos están "vendiendo" un producto como GPL para que la mejore la comunidad mientras que no es GPL.
Además, en cuanto ves esto, ves el impedimento que tiene para que una empresa lo adquiera (¿Para qué quiero gastarme dinero en mysql si ya tengo la otra? o ¿Para que comprar Mysql si Postgress es gratuita?).
Bueno, saludos y a ver si alguien me puede iluminar porque no sé si voy un poco perdido con esto ;)
MySQL tiene mucho potencial de mejora
(Puntos:0)MySQL es un juguete. Aceptalo.
No se puede comparar con bases de datos de verdad como Oracle o DB2. Ni hoy ni dentro de diez años. Ahora mismo estan a años de desarrollo de MySQL, y cuando MySQL haya avanzado, ellos estaran mas lejos porque a su vez seguiran desarrollandose.
Y no te estoy hablando de "florituras inutiles" como vistas, trigers, procedimientos u otras cosas que no se usan en la vida real (es ironia, claro), si no de cuestiones de eficiencia con GRANDES cantidades de datos. MySQL tal vez de resultados rapido en un blog, pero me gustaria saber como se las apañaria para dar resultados de una tabla con 15 millones de filas (en los bancos y aseguradoras esa es una tabla pequeña) mas rapido que DB2. Sobre todo si se molesta en "pequeñeces" como gestionar las paginas sucias, escalar bloqueos y cosas de esas.
Mira, puedes decir que MySQL puede sustituir a Access y mantenerlo sin que te pongan colorado porque POR FIN tiene transacciones (¡¡¡HAN HECHO FALTA 4 VERSIONES!!!) y Access ya no se desarrolla mas, pero no lo mezcles con los sgbd de verdad...
(me da igual la puntuacion, asi que despacharos a gusto, pero vuestra aplicacion favorita no es un sistema gestor de bases de datos de verdad. Y si algun dia llega a serlo, sera mas lento, pesado y tendra los fallos que los de verdad llevan diez años o mas arreglando)
Sois un poco coñacitos
(Puntos:1)( http://barrapunto.com/ | Última bitácora: Miércoles, 28 Enero de 2009, 14:17h )