Showing entries 1 to 4
Displaying posts with tag: myisam (reset)
Dejad de usar FLUSH PRIVILEGES

Una sirena tiene las mismas probabilidades de arreglar tus problemas de permisos, la diferencia es que la gente continúa creyendo en el mito de FLUSH PRIVILEGES.Cada vez que alguien escribe un tutorial o solución a un problema relacionado con la creación de una nueva cuentas de usuario o la provisión de diferentes privilegios veo la sugerencia de utilizar FLUSH PRIVILEGES. Por ejemplo, el primer post en /r/mysql en el momento de escribir estas líneas, “MySQL:The user specified as a definer does not exist (error 1449)-Solutions” es culpable múltiples veces de esto mismo (Actualización: el usuario ha tachado estas líneas, tras …

[Lea más]
Acerca del formato de las tablas temporales en MySQL 5.6

La variable default_tmp_storage_engine se introdujo en 5.6.3, permitiendo la configuración del motor por defecto para las tablas temporales. Esto parece ir en la dirección, como he comentado con anterioridad, de convertir MyISAM en un motor opcional. En 5.7, se crea un espacio de tablas separado para guardar estas tablas con el objetivo de reducir su impacto en el rendimiento (esas tablas no tienen se rehacerse si el servidor falla de manera inesperada, por lo que se evitan escrituras extra).

Sin embargo, he visto mucha gente que asumía que porque el valor por defecto de default_tmp_storage_engine es “InnoDB”, todas las tablas temporales se crean en formato InnoDB. Esto no es cierto: primero, …

[Lea más]
Hoy es el día en que MyISAM ha dejado de ser necesario

Por supuesto, esto sólo es un título para llamar la atención. Por lo que yo sé no todas las tablas de sistema se pueden convertir a InnoDB todavía (por ejemplo, las tablas de privilegios), lo cual convierte la cabecera en técnicamente falsa. MyISAM es un motor muy simple, y eso tiene algunas ventajas inherentes (no hay carga extra debido a las transacciones, más fácil de “editar” manualmente, normalmente ocupa menos espacio en disco), pero también algunas desventajas bastante importantes: no es seguro en el caso de un cuelgue general, no hay claves foráneas, sólo bloqueos a nivel de tabla, problemas de consistencia, bugs en tablas muy grandes,… La versión 5.7.5 “Milestone 15”, presentada hoy en el Oracle Open World tiene …

[Lea más]
Tiempo de importación en MySQL

Una de las formas para importar datos en MySQL es el comando LOAD DATA INFILE. Es más rápido que un dump, ya que se leen los datos en bruto, en lugar de sentencias SQL.

El tiempo de importación depende del motor que use la tabla, por ejemplo, MyISAM puede ser 40 times más rápido que Innodb. Vamos a probarlo:

Preparación

Voy a utilizar MySQL 5.1.36 (64 bits MacOS X) para hacer las pruebas. Necesitaré una tabla grande, así que partiré de la tabla City de la Base de datos world y crearé una tabla más grande que se llame “city_huge”:

CREATE TABLE city_huge LIKE CITY;

INSERT INTO city_huge 
    SELECT NULL, name, CountryCode, District, Population FROM city;
# Ejecuta 100 veces esta sentencia,
# así city_huge será 100 veces más grande que city.
# Un consejo, usa un script, una tabla temporal, …
[Lea más]
Showing entries 1 to 4