Optimización de MySQL: Permisos, Acceso y Motores de Almacenamiento (MyISAM, InnoDB)
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 4,55 KB
Gestión de Permisos y Acceso en MySQL
Tabla de Permisos
El servidor usa las tablas user, db y host. Los permisos de la tabla user son globales y se aplican a todas las bases de datos. Si un permiso está en 'N', se pasará al siguiente nivel, es decir, a db, y así sucesivamente con tables_priv y columns_priv.
Control de Acceso
Nuestra identidad se basa en dos elementos: el nombre de la máquina cliente y nuestro nombre de usuario MySQL. host y user.% significan cualquier cliente.
Verificación de Permisos
Los privilegios de la tabla user son de superusuario. Es aconsejable otorgar solo estos privilegios a los administradores. Para otros usuarios, se les asigna 'N' y se les otorgan permisos a un nivel más específico.
Gestión de Privilegios
Si modificamos las tablas grant utilizando GRANT, REVOKE o SET PASSWORD, las tablas se recargan en memoria inmediatamente. Pero si lo hacemos con INSERT, UPDATE o DELETE, es necesario reiniciar el servidor o recargar manualmente con FLUSH PRIVILEGES o el comando mysqladmin flush-privileges.
Motores de Almacenamiento (Engines) en MySQL
MySQL es modular y permite elegir entre diferentes motores de almacenamiento (engines) para los datos. Los engines se aplican a tablas, no a bases de datos. Puedes tener una base de datos con diferentes engines, dependiendo del tipo de datos o consultas que se realicen. Las tablas tienen el formato .frm. Este fichero guarda la estructura de la tabla. Independientemente del engine, tendremos un .frm. Además, podemos tener otros ficheros acompañando al .frm.
MyISAM
Virtudes y Defectos de MyISAM
Hay que conocer bien sus virtudes y defectos:
- Virtudes:
- Soporta búsquedas
FULLTEXT. - Se puede usar para generar tablas
MERGE. - Suele ser el más rápido en lecturas.
- Se pueden comprimir tablas para ahorrar espacio.
- Soporta búsquedas
- Defectos:
- Al escribir se hace uso de bloqueo de tabla.
- No soporta transacciones, integridad referencial o claves externas.
- No tiene cacheo de datos.
Gestión de Prioridades con Schedulers (MyISAM)
Las prioridades pueden modificarse haciendo uso de los schedulers:
LOW PRIORITY: Para las consultas que escriben datos. La escritura se queda esperando a que terminen todas las lecturas, incluso las que llegan después. Se escribirá cuando no exista ninguna lectura pendiente.HIGH PRIORITY: Para las consultas de lectura. Las consultas con este modificador se mueven al principio de la cola, por delante de otras escrituras y lecturas.DELAYED: Para consultasINSERTyREPLACE. El servidor mete en un búfer las filas y las inserta cuando la tabla no se esté usando.
Formatos de Almacenamiento MyISAM
MyISAM puede almacenar las filas en tres formatos: FIXED, DYNAMIC y COMPRESSED.
FIXED:- Todas las filas tienen el mismo tamaño.
- Ocupan más espacio.
- Se encuentran más rápido.
DYNAMIC:- Usa un tamaño variable de datos (menos que
FIXED). - Las filas no se encuentran tan eficientemente.
- Puede haber más fragmentación.
- Usa un tamaño variable de datos (menos que
COMPRESSED:- Ocupan mucho menos espacio.
- Optimizado para consultas rápidas.
- Solo lectura.
InnoDB
Ventajas y Desventajas de InnoDB
InnoDB nos ofrece todo aquello de lo que MyISAM carece:
- Ventajas:
- Claves externas.
- Integridad referencial.
- Bloqueo de filas en lugar de tablas.
- Autorrecuperación ante errores.
- Transacciones y rollbacks.
- Cacheo de índices y datos.
- Desventajas (al pasarse a InnoDB):
- Capacidades de búsqueda
FULLTEXT. - La posibilidad de comprimir las tablas.
- No poder hacer uso de
MERGE. - "Solo" 64 TB de datos por tabla.
- Capacidades de búsqueda