Optimización y Mantenimiento de Tablas MySQL: Implementación y Conexión en Aplicaciones Web PHP
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 5,89 KB
Mantenimiento y Optimización de Tablas MySQL
Uso de ANALYZE TABLE
El comando ANALYZE TABLE se utiliza para todo tipo de tablas y almacena la distribución de claves de una tabla. La tabla se bloquea con un bloqueo de lectura para motores como MyISAM e InnoDB.
Sintaxis SQL:
mysql> ANALYZE TABLE NOMBRETABLA;ANALYZE TABLE devuelve un conjunto de resultados. La tabla solo se analizará de nuevo si se ha modificado desde la última vez que se ejecutó el comando.
Comprobación y Reparación de Tablas (CHECK TABLE y mysqlcheck)
Las caídas del sistema o los cortes del suministro eléctrico pueden dañar las tablas. Podemos comprobar el estado de las tablas utilizando CHECK TABLE o la utilidad de línea de comandos mysqlcheck (si el servidor está en ejecución).
Síntomas de Tablas Dañadas
- La información se devuelve muy lentamente.
- No se encuentran datos que deberían existir.
- Aparición de errores como: finales de archivo inesperado,
nombredetabla.frmbloqueado ante cambios, o no se puede encontrar el archivotabla.MYI.
Sintaxis SQL para comprobación:
mysql> CHECK TABLE nombre_tabla;El comando puede producir varios registros de información para cada tabla chequeada. El último registro tiene un valor Msg_type de status y Msg_text que normalmente debe ser OK. Si no se obtiene OK o Table is already up to date, se debe realizar una reparación de la tabla.
Nota importante: Las opciones de chequeo se aplican solo para tablas MyISAM, ignorando tablas InnoDB y vistas.
Sintaxis y Opciones de mysqlcheck
La utilidad mysqlcheck se ejecuta desde la línea de comandos (shell):
shell> mysqlcheck [opciones] nombrebasedato nombretabla/s –u root –pTambién se puede usar para analizar tablas:
shell> mysqlcheck -a nombre_bd nombre_tabla/s o base de datosOpciones de mysqlcheck
--auto-repair: Si una tabla comprobada está corrupta, la repara automáticamente.--check,-c: Comprueba las tablas en busca de errores.--check-only-changed,-C: Solo comprueba tablas que han cambiado desde la última comprobación o que no se han cerrado correctamente. Procesa todas las tablas en la base de datos especificada.--fast,-F: Comprueba solo tablas que no se han cerrado correctamente.--medium-check,-m: El chequeo es más rápido que la operación--extended. Este método encuentra el 99.99% de todos los errores.
Integración de Bases de Datos en Aplicaciones Web
Ventajas de las Bases de Datos Web
- Proporcionar información actualizada.
- Facilitar la realización de búsquedas.
- Disminuir los costes de mantenimiento.
- Implementar sistemas de control de acceso.
- Almacenar preferencias de los usuarios.
Flujo de Integración (Aplicación y Base de Datos)
- La aplicación (app) se conecta a la base de datos (BD).
- La app realiza cualquier operación (consulta, inserción, etc.).
- La BD proporciona la información solicitada.
- La app, a partir de la información de la BD, maneja los datos y los presenta en pantalla al usuario.
Gestión de Conexiones PHP (Funciones mysql_*)
El sistema de acceso básico requiere tres pasos:
- Iniciar la conexión con la base de datos.
- Ejecutar las sentencias SQL.
- Cerrar la conexión.
Establecer Conexión
$conexion = mysql_connect("nombrehost", "usuario", "contraseña");Seleccionar Base de Datos
mysql_select_db("nombrebasededatos");Cerrar Conexión
mysql_close($conexion);Ejemplo de Conexión y Selección de BD en PHP
<?php
$MySQL_host = "localhost";
$MySQL_database = "alumnos";
$MySQL_user = "root";
$MySQL_password = "";
$conexion = mysql_connect($MySQL_host, $MySQL_user, $MySQL_password)
or die ("La conexión no se ha podido realizar");
mysql_select_db($MySQL_database);
?>Operaciones DDL Básicas (Creación de BD y Tablas)
Crear Base de Datos
La sintaxis para ejecutar una consulta es: $consulta = mysql_query(instrucción);
<?php
$MySQL_host = "localhost";
$MySQL_user = "root";
$MySQL_password = "";
$conexion = mysql_connect($MySQL_host, $MySQL_user, $MySQL_password)
or die ("La conexión no se ha podido realizar");
$query = "CREATE DATABASE profesores";
$result = mysql_query($query);
?>Creación de Tablas
Podemos añadir a la sentencia CREATE TABLE la opción IF NOT EXISTS para evitar sobrescribir tablas existentes.
<?php
$MySQL_host = "localhost";
$MySQL_user = "root";
$MySQL_password = "";
$conexion = mysql_connect($MySQL_host, $MySQL_user, $MySQL_password)
or die ("La conexión no se ha podido realizar");
// Se asume que la BD 'profesores' ya existe o se crea aquí
$MySQL_database = "profesores";
mysql_select_db($MySQL_database);
$query = "CREATE TABLE profesores (
NOMBRE VARCHAR(30),
APELLIDOS VARCHAR(60)
)";
$result = mysql_query($query);
// Ejemplo con IF NOT EXISTS
// $query_safe = "CREATE TABLE IF NOT EXISTS nombretabla (campo1, campo2...)";
?>