Sun, MySQL, y un mercado especulador

Despues de mas de 100 posts uno atras del otro en planet mysql durante dias, deberian saber de sobra que Sun compro MySQL por 1000 millones de dolares.
Por una de esas casualidades, termine mirando el cambio de las acciones de Sun, y, calculadora de por medio, llegue a la conclusion que por esas locuras del mercado, a Sun le salio practicamente gratis la adquisicion. Explico un poco.
Antes de el anuncio, cada accion de Sun valia, promediando comodamente, 15 dolares. Hay un total de 828.58 millones de acciones emitidas en el mercado, dandole un valor (aunque sea ficticio) de 12428.7 millones de dolares a la empresa.
Al hacer el anuncio de la compra de MySQL, sus acciones subieron a 16 dolares por accion, dandole un valor total a la empresa de 13257.3 millones de dolares, aumentando instantaneamente 830 millones de dolares por un anuncio de prensa.
Ponemos 170 millones que tenemos abajo de los almohadones del sillon en monedas sueltas, e instantaneamente somos dueños de la base de datos mas popular del mundo

Habiendo tenido la oportunidad de cenar con algunos de los principales encargados del Open Source dentro de Sun, se que la adquisicion va a traer mas cosas buenas para MySQL (y para todos los que lo usamos).

También te puede interesar:

Sun compró Mysql

La noticia del día parece ser que la gente de Sun pusó U$S 1.000 millones y algo de acciones sobre la mesa de Mysql y se los metieron en el bolsillo.
Nadie sabe muy bien para donde va a ir esto, pero Sun tiene en su medallero(?) la Liberación de Java, OpenOffice, Open Solaris y mas contribuciones al SL que lo hacen una de las empresas que mas contribuye al FLOSS en el mundo, asi que algo “malo malo malo”(que reescriban mysql en java) no creo que vaya a pasar.

PHP5/6 con soporte mysql nativo: mysqlnd

Se anunció un nuevo driver de MySQL para PHP, mysqlnd, con la diferenciación que funciona nativamente, en contra parte con la extensión actual libmysql.
Al usar funciones nativas de PHP, se logró un leve incremento en performance, mejoraron las conexiones persistentes, y ya no se requieren librerías externas.

Manejo de Zonas horarias en MySQL

Bueno, me cansé de los quilombos con las zonas horarias en las aplicaciones web, asi que investigue un poco, y resulta que es bastante fácil.

Lo primero que hay que tener, es una tabla creada con la data de las zonas horarias. Nos podemos fijar si ya esta ejecutando esto:

SELECT COUNT(*) FROM mysql.time_zone_name
(necesitas permisos root)

Si eso da cero resultados, hay que poblar la tabla.

Para eso hay una herramienta que lo hace por nosotros, y es muy fácil. Con sólo ejecutar en una consola:

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql

Ya queda la tabla poblada con las zonas horarias.

Despues de eso, en los queries solo tenemos que usar SELECT CONVERT_TZ, por ejemplo:

SELECT CONVERT_TZ('2007-05-02 19:51:00','America/Buenos_Aires','Europe/Madrid');

Referencia: Manual de MySQL

Totales en MySQL

Tip del dia: usar WITH ROLLUP en MySQL.

Tomando los ejemplos directamente del manual de MySQL:

Estos serian los campos
CREATE TABLE sales
(
year INT NOT NULL,
country VARCHAR(20) NOT NULL,
product VARCHAR(32) NOT NULL,
profit INT
);

Probamos una consulta simple de totales
mysql> SELECT year, SUM(profit) FROM sales GROUP BY year;
+------+-------------+
| year | SUM(profit) |
+------+-------------+
| 2000 | 4525 |
| 2001 | 3010 |
+------+-------------+

Hacemos el ROLLUP, podemos ver que el último resultado es el total
mysql> SELECT year, SUM(profit) FROM sales GROUP BY year WITH ROLLUP;
+------+-------------+
| year | SUM(profit) |
+------+-------------+
| 2000 | 4525 |
| 2001 | 3010 |
| NULL | 7535 |
+------+-------------+

Hay usos más avanzados de esta función, el manual de MySQL es un buen lugar para leerlo.

Gráficos desde MySQL

Hay gente ingeniosa dando vueltas.
Dios sabrá que lo llevo a hacerlo, pero alguien hizo algo genial como gráficos de resultados directamente desde MySQL de una forma muy simple.

Tomando estos resultados:

mysql> SELECT Name, Value FROM Month;
+———————————+——————————-+
| Name      | Value   |
+———————————+——————————-+
| January   | 379.385 |
| February  | 906.076 |
| March     | 392.224 |
| April     | 242.893 |
| May       | 37.7936 |
| June      | 460.288 |
| July      |  188.06 |
| August    | 559.437 |
| September | 233.005 |
| October   | 486.714 |
| November  | 734.555 |
| December  | 212.632 |
+———————————+——————————-+
12 rows in set (0.00 sec)

Eso lo convertimos en:

mysql> select Name, REPEAT("#", Value/20.0+1) Graph FROM Month;
+———————————+————————————————————————————————————————————————————————-+
| Name      | Graph                                          |
+———————————+————————————————————————————————————————————————————————-+
| January   | ####################                           |
| February  | ############################################## |
| March     | #####################                          |
| April     | #############                                  |
| May       | ###                                            |
| June      | ########################                       |
| July      | ##########                                     |
| August    | #############################                  |
| September | #############                                  |
| October   | #########################                      |
| November  | ######################################         |
| December  | ############                                   |
+———————————+————————————————————————————————————————————————————————-+
12 rows in set (0.00 sec)

Insertando una tabla de otra base de datos

¿Sabían que…
si necesitan insertar toda una tabla (misma estructura) pero está en otra base de datos, pueden hacer esto:

INSERT INTO mi_tabla_hermosa SELECT * FROM
otra_bd.mi_otra_tabla_hermosa;

?

Una lista de pequeños misterios de MySQL

Está en inglés, pero recomiendo leerlo para el que usa mucho MySQL.
Una lista de todas las pequeñas rarezas, bugs y excepciones de MySQL.
Ej. Si insertamos valores en varchar con un espacio al final, ese espacio, desaparece mágicamente.

65 Consejos para Optimizar el Desarrollo Web con MySQL

Sheeri Kritzer es una de los organizadores de MySQL Boston Meetups (reuniones), y nos transcribe en su blog 65 consejos para optimizar tus aplicaciones web que dieron en la conferencia.
- Pensá horizontalmente
- No tengas “el” servidor para nada
- Cachear es bueno
- Divide y conquistarás: separá todo lo que puedas en servidores distintos
- Hacé todo repetible. Programá para que ante cualquier eventualidad vuelvas a ejecutar el proceso y listo
- Hacé todo en unicode
- Las bases de datos no escalan tan facilmente como los servidores web
- Loguea TODOS los http requests, pero sólo el 1%-2%
Ver todos…

El nuevo motor de MySQL

Primero un poco de historio.
Hace unos dias Oracle compró Innobase, los dueños y desarrolladores de InnoDB.
Aunque el motor de base de datos por defecto en MySQL sea MyISAM, la elección por defecto de los grandes proyectos es InnoDB (ej. slashdot).
La compra de Oracle significa que no seguirá siendo, a futuro parte de MySQL por razones obvias de conflicto de interés.
MySQL reaccionó entrando en conversaciones con Solid Tech, que han desarrollado solidDB, una base de datos poco conocida, pero al parecer, valga el chiste, muy sólida.
Tiene una enorme cantidad de prestaciones, a los que les interesa tienen varios lugares donde leer.

MySQL vs PostgreSQL

PostgreSQL es una de esas cosas que estan muy sub-valoradas en la vida.
En slashdot anduvieron discutiendo y desmitificando ayer, y quisiera aportar mi granito de arena:

Una tabla de comparativa entre MySQL y PostgreSQL

Funcion Mysql 3.x Mysql 4.0 Mysql 5.x Postgres 7.x
Subselects No Partial Si Si
Views No No Si Si
Foreign Key Relationships No Si Si Si
Foreign Key Constraints No No Si Si
Triggers No No Si Si
Indexing (non-trivial types) No No Si Si
Sequences Partial Partial Partial Si
Transactions No Si Si Si
Table Inheritance No No No Si
Async. Notifications No No No Si
Constraints No No Si Si
Select Into No Si Si Si
Stored Procedures No No Si Si
Row-Level Locking Si Si Si Si
Table-Level Locking Si Si Si Si
Geospatial datatypes No Si Si No
Native Replication Si Si Si No

* No traduje todo

Mysql sigue ganando plata

Mysql AB, la empresa creadora de mysql, el motor de bases de datos libre mas usado en el mundo, presentó ganancias record para el cuarto de año y record de ventas para el año, demostrando que hay un modelo de negocios profitable con el sofware libre

Siga caminando mysql, y muestre el camino a los demás!

fuente, linuxfilter

Mysql recibió 18.5 millones

Entre redhat, SAP y otros pusieron unos 18.5 millones de dólares estadounidenses en mysql.

A ver que hacen con toda esa guita, no?

via meneameeeeeeeee

Analizar querys en MySQL

Ayer me puse a pensar que es probable que mucha gente no sepa que si al final de tu query le agregas PROCEDURE ANALYSE(), encontrar los cuellos de botella son un poco mas faciles.

MySQL le patea el trasero a Oracle y MS SQL Server

En un benchmark que podria ser un poco cuestionable, pero no deja te tener un poco de seriedad, salio MySQL por arriba de Oracle y MS SQL Server.
Tambien tiene una breve definicion/explicacion de algunas cosas de bases de datos.

Cluster de MySQL

Siempre dicen por ahi “redundancia en la base de datos”, clusters y distintos engendros.
Todos sabemos que en algun momento lo vamos a necesitar, pero nadie parece saber bien como es.
Encontre un how-to bastante bueno.
(me imagino que no tengo que aclarar que es para Linux, pero por las dudas, es para LINUX)