por
pobrecito hablador
el Lunes, 19 Enero de 2004, 13:04h
(#255686)
Vaya de antemano que conozco mejor Oracle (Que utilizo profesionalmente), que MySQL (que utilizo como backend de un weblog y unos foros que no tienen nada que ver con mi trabajo). Lo digo, porque puede que cometa alguna incorrección al hablar MySQL.
En efecto, la URL recomendada más arriba da una comparativa bastante buena entre MySQL y Oracle. Para empezar, estoy de acuerdo en que lo 1º que tiene Oracle que no tienen las demás es el soporte. En la informática corporativa, lo más valorado a veces es la eficacia del soporte (tiempo de resolución de problemas, velocidad en la resolución de bugs, etc.), más incluso que la calidad técnica de producto... Aunque en algún caso concreto, te "puede tocar la china", normalmente una empresa grande (y medianamente seria) da mejor servicio que una pequeña.
En cuanto a la calidad técnica de Oracle y MySQL, creo que cada una tiene sus ventajas e inconvenientes. Intentaré resumirlo para no enrollarme mucho:
- Una aplicación de tipo "Weblog" o foros le van a MySQL (con tablas MyISAM) como anillo al dedo. Son aplicaciones que se pueden implementar sin integridad referencial, triggers ni procedimientos, y además no suelen manejar volúmenes grandes de datos (entendamos grande como decenas de GB en adelante). Sobre todo realizan INSERTs y SELECTs, y sobre esos volúmenes de datos, MySQL los hace a la velocidad de la luz. O sea, lo que exige la aplicación, MySQL lo hace de maravilla y utilizar Oracle para esto posiblemente sea matar moscas a cañonazos (aparte de la pasta que vale).
- Si nos metemos en volúmenes grandes de datos, Oracle tiene varias características que MySQL posíblemente tarde tiempo en tener:
1. Particionamiento de tablas. Basándonos en el valor de un campo, la tabla se divide en varias particiones físicas que son transparentes a nivel de SQL. Ejemplo: Si yo escojo una columna "fecha" para particionar, me podría definir una partición por mes, de forma que al hacer una consulta que pregunte por fecha se pueden descartar trozos de la tabla sin reescribir las consultas SQL.
2. Ejecución en paralelo. Oracle puede dividir la ejecución de una operación SQL entre varios procesos del S.S.O.O., lo cual permite su ejecución concurrente en varias CPUs.
3. Los algoritmos de indexación y Join son bastante más sofisticados en Oracle. Creo que no exagero si os digo que en este aspecto MySQL está 10 años por detrás de Oracle.
Por tanto usar MySQL para un almacén de datos históricos de centenares de GB (y no lo pongo muy grande), me parece un suicidio.
Re:Features avanzadas
(Puntos:0)En efecto, la URL recomendada más arriba da una comparativa bastante buena entre MySQL y Oracle. Para empezar, estoy de acuerdo en que lo 1º que tiene Oracle que no tienen las demás es el soporte. En la informática corporativa, lo más valorado a veces es la eficacia del soporte (tiempo de resolución de problemas, velocidad en la resolución de bugs, etc.), más incluso que la calidad técnica de producto... Aunque en algún caso concreto, te "puede tocar la china", normalmente una empresa grande (y medianamente seria) da mejor servicio que una pequeña.
En cuanto a la calidad técnica de Oracle y MySQL, creo que cada una tiene sus ventajas e inconvenientes. Intentaré resumirlo para no enrollarme mucho:
- Una aplicación de tipo "Weblog" o foros le van a MySQL (con tablas MyISAM) como anillo al dedo. Son aplicaciones que se pueden implementar sin integridad referencial, triggers ni procedimientos, y además no suelen manejar volúmenes grandes de datos (entendamos grande como decenas de GB en adelante). Sobre todo realizan INSERTs y SELECTs, y sobre esos volúmenes de datos, MySQL los hace a la velocidad de la luz. O sea, lo que exige la aplicación, MySQL lo hace de maravilla y utilizar Oracle para esto posiblemente sea matar moscas a cañonazos (aparte de la pasta que vale).
- Si nos metemos en volúmenes grandes de datos, Oracle tiene varias características que MySQL posíblemente tarde tiempo en tener:
1. Particionamiento de tablas. Basándonos en el valor de un campo, la tabla se divide en varias particiones físicas que son transparentes a nivel de SQL. Ejemplo: Si yo escojo una columna "fecha" para particionar, me podría definir una partición por mes, de forma que al hacer una consulta que pregunte por fecha se pueden descartar trozos de la tabla sin reescribir las consultas SQL.
2. Ejecución en paralelo. Oracle puede dividir la ejecución de una operación SQL entre varios procesos del S.S.O.O., lo cual permite su ejecución concurrente en varias CPUs.
3. Los algoritmos de indexación y Join son bastante más sofisticados en Oracle. Creo que no exagero si os digo que en este aspecto MySQL está 10 años por detrás de Oracle.
Por tanto usar MySQL para un almacén de datos históricos de centenares de GB (y no lo pongo muy grande), me parece un suicidio.
Espero no haberme enrollado demasiado...