MySQL 5.0 Manual de Referencia – Oracle Corporation – Edición 2007

MySQL 5.0 Reference Manual

Por: / Vespito

Descripción

Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original.

Éste es el manual de referencia para el sistema de base de datos MySQL, en su versión 5.0, hasta la versión 5.0.9-beta. No debería utilizarse con ediciones más antiguas del software MySQL, por las muchas diferencias funcionales y de otro tipo entre MySQL 5.0 y versiones anteriores. Si se está utilizando una versión anterior del software MySQL, es preferible hacer referencia al Manual de referencia de MySQL 4.1, que cubre las versiones 3.22, 3.23, 4.0 y 4.1 de MySQL.

En este texto se señalan las diferencias entre las diversas versiones de MySQL 5.0, indicando la entrega $5.0.x$.

Prefacio

1. Información general

1.1. Sobre este manual

1.2. Convenciones utilizadas en este manual

1.3. Panorámica de MySQL AB

1.4. Panorámica del sistema de gestión de base de datos MySQL

1.4.1. Historia de MySQL

1.4.2. Las principales características de MySQL

1.4.3. Estabilidad de MySQL

1.4.4. Dimensiones máximas de las tablas MySQL

1.4.5. Conformidad con el efecto 2000

1.5. Mapa de desarrollo de MySQL

1.5.1. El servidor MySQL incrustado (embedded)

1.5.2. Qué hay de nuevo en MySQL 5.0

1.6. Fuentes de información acerca de MySQL

1.6.1. Listas de correo de MySQL

1.6.2. Soporte por IRC (Internet Relay Chat) de la comunidad MySQL

1.6.3. Soporte por parte de la comunidad en los foros de MySQL

1.7. Cumplimiento de los estándares por parte de MySQL

1.7.1. Estándares utilizados por MySQL

1.7.2. Selección de modos SQL

1.7.3. Ejecutar MySQL en modo ANSI

1.7.4. Extensiones MySQL al estándar SQL

1.7.5. Diferencias en MySQL del estándar SQL

1.7.6. Cómo trata MySQL las restricciones (Constraints)

2. Instalar MySQL

2.1. Cuestiones generales sobre la instalación

2.1.1. Sistemas operativos que MySQL soporta

2.1.2. Escoger la distribución MySQL a instalar

2.1.3. Cómo obtener MySQL

2.1.4. Comprobar la integridad de paquetes con sumas de verificación MD5 o GnuPG

2.1.5. Conformación de la instalación

2.2. Instalación MySQL estándar con una distribución binaria

2.3. Instalar MySQL en Windows

2.3.1. Requisitos de Windows

2.3.2. Elección de un paquete de instalación

2.3.3. Instalación de MySQL con un instalador automático

2.3.4. Usar el asistente de instalación de MySQL

2.3.5. Utilización del asistente de configuración

2.3.6. Instalar MySQL partiendo de un archivo Zip Noinstall

2.3.7. Descomprimir el fichero de instalación

2.3.8. Creación de un fichero de opciones

2.3.9. Seleccionar un tipo de servidor MySQL

2.3.10. Arrancar el servidor la primera vez

2.3.11. Arrancar MySQL desde la línea de comandos de Windows

2.3.12. Arrancar MySQL como un servicio de Windows

2.3.13. Comprobar la instalación de MySQL Installation

2.3.14. Resolución de problemas en la instalación de MySQL bajo Windows

2.3.15. Aumentar la versión de MySQL en Windows

2.3.16. Comparación entre MySQL en Windows y MySQL en Unix

2.4. Instalar MySQL en Linux

2.5. Instalar MySQL en Mac OS X

2.6. Instalar MySQL sobre NetWare

2.7. Instalación de MySQL en otros sistemas similares a Unix

2.8. Instalación de MySQL usando una distribución de código fuente

2.8.1. Panorámica de la instalación de código fuente

2.8.2. Opciones típicas de configure

2.8.3. Instalar desde el árbol de código fuente de desarrollo

2.8.4. Problemas en la compilación de MySQL

2.8.5. Notas sobre MIT-pthreads

2.8.6. Instalar MySQL desde el código fuente en Windows

2.8.7. Compilar los clientes de MySQL en Windows

2.9. Puesta en marcha y comprobación después de la instalación

2.9.1. Pasos a seguir después de la instalación en Windows

2.9.2. Pasos a seguir después de la instalación en Unix

2.9.3. Hacer seguras las cuentas iniciales de MySQL

2.10. Aumentar la versión de MySQL

2.10.1. Aumentar la versión de 4.1 a 5.0

2.10.2. Aumentar la versión de las tablas de privilegios

2.10.3. Copiar bases de datos MySQL a otra máquina

2.11. Bajar la versión de MySQL

2.11.1. Volver a la versión 4.1

2.12. Notas específicas sobre sistemas operativos

2.12.1. Notas sobre Linux

2.12.2. Notas sobre Mac OS X

2.12.3. Notas sobre Solaris

2.12.4. Notas sobre BSD

2.12.5. Notas sobre otros Unix

2.12.6. Notas sobre OS/2

2.13. Notas sobre la instalación de Perl

2.13.1. Instalación de Perl en Unix

2.13.2. Instalar ActiveState Perl en Windows

2.13.3. Problemas en la utilización de la interfaz Perl DBI/DBD

3. Curso (tutorial) de MySQL

3.1. Conectarse al y desconectarse del servidor

3.2. Entrar consultas

3.3. Crear y utilizar una base de datos

3.3.1. Crear y seleccionar una base de datos

3.3.2. Crear una tabla

3.3.3. Cargar datos en una tabla

3.3.4. Extraer información de una tabla

3.4. Obtener información sobre bases de datos y tablas

3.5. Usar mysql en modo batch

3.6. Ejemplos de consultas comunes

3.6.1. El valor máximo de una columna

3.6.2. El registro que tiene el valor máximo de determinada columna

3.6.3. Máximo de columna por grupo

3.6.4. Los registros de un grupo que tienen el máximo valor en alguna columna

3.6.5. Utilización de variables de usuario

3.6.6. Usar claves foráneas (foreign keys)

3.6.7. Buscar usando dos claves

3.6.8. Calcular visitas diarias

3.6.9. Utilización de AUTO_INCREMENT

3.7. Consultas del proyecto Mellizos (Twin)

3.7.1. Encontrar todos los mellizos no repartidos

3.7.2. Mostrar una tabla de estado de mellizos

3.8. Usar MySQL con Apache

4. Usar los programas MySQL

4.1. Panorámica de programas MySQL

4.2. Invocar programas MySQL

4.3. Especificar opciones de programa

4.3.1. Usar opciones en la línea de comandos

4.3.2. Usar ficheros de opciones

4.3.3. Usar variables de entorno para especificar opciones

4.3.4. Utilización de opciones para establecer variables de programa

5. Administración de bases de datos

5.1. El servidor MySQL y scripts de arranque del servidor

5.1.1. Panorámica de los programas scripts y las utilidades del lado del servidor (server-side)

5.1.2. El servidor extendido de MySQL mysqld-max

5.1.3. El script de arranque del servidor mysqld_safe

5.1.4. El script mysql.server para el arranque del servidor

5.1.5. El programa mysqld_multi para gestionar múltiples servidores MySQL

5.2. El gestor de instancias de MySQL

5.2.1. Arrancar el servidor MySQL con el gestor de instancias MySQL

5.2.2. Conexión al gestor de instancias de MySQL y creación de cuentas de usuario

5.2.3. Opciones de los comandos del gestor de instancias MySQL

5.2.4. Ficheros de configuración del gestor de instancias de MySQL

5.2.5. Los comandos que reconoce el gestor de instancias de MySQL

5.3. Configuración del servidor MySQL

5.3.1. Opciones del comando mysqld

5.3.2. El modo SQL del servidor

5.3.3. Variables de sistema del servidor

5.3.4. Variables de estado del servidor

5.4. El proceso de cierre del servidor MySQL

5.5. Cuestiones de seguridad general

5.5.1. Guía de seguridad general

5.5.2. Hacer que MySQL sea seguro contra ataques

5.5.3. Opciones de arranque para mysqld relacionadas con la seguridad

5.5.4. Cuestiones relacionadas con la seguridad y LOAD DATA LOCAL

5.6. El sistema de privilegios de acceso de MySQL

5.6.1. Qué hace el sistema de privilegios

5.6.2. Cómo funciona el sistema de privilegios

5.6.3. Privilegios de los que provee MySQL

5.6.4. Conectarse al servidor MySQL

5.6.5. Control de acceso, nivel 1: Comprobación de la conexión

5.6.6. Control de acceso, nivel 2: comprobación de solicitudes

5.6.7. Cuándo tienen efecto los camios de privilegios

5.6.8. Causas de errores Access denied

5.6.9. Hashing de contraseñas en MySQL 4.1

5.7. Gestión de la cuenta de usuario MySQL

5.7.1. Nombres de usuario y contraseñas de MySQL

5.7.2. Añadir nuevas cuentas de usuario a MySQL

5.7.3. Eliminar cuentas de usuario de MySQL

5.7.4. Limitar recursos de cuentas

5.7.5. Asignar contraseñas a cuentas

5.7.6. Guardar una contraseña de forma segura

5.7.7. Usar conexiones seguras

5.8. Prevención de desastres y recuperaciones

5.8.1. Copias de seguridad de bases de datos

5.8.2. Ejemplo de estrategia de copias de seguridad y recuperación

5.8.3. Mantenimiento de tablas y recuperación de un fallo catastrófico (crash)

5.8.4. Organizar un programa de mantenimiento de tablas

5.8.5. Obtener información acerca de una tabla

5.9. Uso internacional y localización de MySQL

5.9.1. El conjunto de caracteres utilizado para datos y ordenación

5.9.2. Escoger el idioma de los mensajes de error

5.9.3. Añadir un conjunto de caracteres nuevo

5.9.4. Los vectores de definición de caracteres

5.9.5. Soporte para colación de cadenas de caracteres

5.9.6. Soporte de caracteres multi-byte

5.9.7. Problemas con conjuntos de caracteres

5.9.8. Soporte de zonas horarias en el servidor MySQL

5.10. Los ficheros de registro (log) de MySQL

5.10.1. El registro de errroes (Error Log)

5.10.2. El registro general de consultas

5.10.3. El registro binario (Binary Log)

5.10.4. El registro de consultas lentas (Slow Query Log)

5.10.5. Mantenimiento de ficheros de registro (log)

5.11. Ejecutar más de un servidor MySQL en la misma máquina

5.11.1. Ejecutar varios servidores en Windows

5.11.2. Ejecutar varios servidores en Unix

5.11.3. Utilización de programas cliente en un entorno de múltiples servidores

5.12. La caché de consultas de MySQL

5.12.1. Cómo opera la caché de consultas

5.12.2. Opciones de SELECT para la caché de consultas

5.12.3. Configuración de la caché de consultas

5.12.4. Estado y mantenimiento de la caché de consultas

6. Replicación en MySQL

6.1. Introducción a la replicación

6.2. Panorámica de la implementación de la replicación

6.3. Detalles de la implementación de la replicación

6.3.1. Estados de los subprocesos del maestro de replicación

6.3.2. Estados de proceso E/S (I/O) del esclavo de replicación

6.3.3. Estados del flujo SQL de un esclavo de replicación

6.3.4. Ficheros de replicación, retardados y de estado

6.4. Cómo montar la replicación

6.5. Compatibilidad entre versiones de MySQL con respecto a la replicación

6.6. Aumentar la versión de la replicación

6.6.1. Aumentar la versión de la replicación a 5.0

6.7. Características de la replicación y problemas conocidos

6.8. Opciones de arranque de replicación

6.9. Preguntas y respuestas sobre replicación

6.10. Resolución de problemas de replicación

6.11. Reportar bugs de replicación

7. Optimización de MySQL

7.1. Panorámica sobre optimización

7.1.1. Limitaciones y soluciones de compromiso en el diseño de MySQL

7.1.2. Diseñar aplicaciones pensando en la portabilidad

7.1.3. Para qué hemos usado MySQL

7.1.4. El paquete de pruebas de rendimiento (benchmarks) de MySQL

7.1.5. Usar pruebas de rendimiento (benchmarks) propios

7.2. Optimizar sentencias SELECT y otras consultas

7.2.1. Sintaxis de EXPLAIN (Obtener información acerca de un SELECT)

7.2.2. Estimar el renidimiento de una consulta

7.2.3. Velocidad de las consultas SELECT

7.2.4. Optimización de las cláusulas WHERE por parte de MySQL

7.2.5. Optimización de rango

7.2.6. Index Merge Optimization

7.2.7. Cómo optimiza MySQL IS NULL

7.2.8. Cómo MySQL optimiza DISTINCT

7.2.9. Cómo optimiza MySQL los LEFT JOIN y RIGHT JOIN

7.2.10. Cómo optimiza MySQL ORDER BY

7.2.11. Cómo optimiza MySQL los GROUP BY

7.2.12. Cómo optimiza MySQL las cláusulas LIMIT

7.2.13. Cómo evitar lecturas completas de tablas

7.2.14. Velocidad de la sentencia INSERT

7.2.15. Velocidad de las sentencias UPDATE

7.2.16. Velocidad de sentencias DELETE

7.2.17. Otros consejos sobre optimización

7.3. Temas relacionados con el bloqueo

7.3.1. Métodos de bloqueo

7.3.2. Cuestiones relacionadas con el bloqueo (locking) de tablas

7.4. Optimizar la estructura de una base de datos

7.4.1. Elecciones de diseño

7.4.2. Haga sus datos lo más pequeños posibles

7.4.3. Índices de columna

7.4.4. Índices de múltiples columnas

7.4.5. Cómo utiliza MySQL los índices

7.4.6. La caché de claves de MyISAM

7.4.7. Cómo cuenta MySQL las tablas abiertas

7.4.8. Cómo abre y cierra tablas MySQL

7.4.9. Desventajas de crear muchas tablas en la misma base de datos

7.5. Optimización del servidor MySQL

7.5.1. Factores de sistema y afinamientos de parámetros de arranque

7.5.2. Afinar parámetros del servidor

7.5.3. Vigilar el rendimiento del optimizador de consultas

7.5.4. Efectos de la compilación y del enlace en la velocidad de MySQL

7.5.5. Cómo utiliza MySQL la memoria

7.5.6. Cómo usa MySQL las DNS

7.6. Cuestiones relacionadas con el disco

7.6.1. Utilizar enlaces simbólicos

8. Programas cliente y utilidades MySQL

8.1. Panorámica de scripts y utilidades del lado del cliente

8.2. myisampack, el generador de tablas comprimidas de sólo lectura de MySQL

8.3. La herramienta intérprete de comandos mysql

8.3.1. Comandos mysql

8.3.2. Ejecutar sentencias SQL desde un fichero de texto

8.3.3. Sugerencias acerca de mysql

8.4. Administrar un servidor MySQL con mysqladmin

8.5. La utilidad mysqlbinlog para registros binarios

8.6. El programa mysqlcheck para mantener y reparar tablas

8.7. El programa de copia de seguridad de base de datos mysqldump

8.8. El programa de copias de seguridad de base de datos mysqlhotcopy

8.9. El programa para importar datos mysqlimport

8.10. Mostrar bases de datos, tablas y columnas con mysqlshow

8.11. perror, explicación de códigos de error

8.12. La utilidad replace de cambio de cadenas de caracteres

9. Estructura de lenguaje

9.1. Valores literales

9.1.1. Cadenas de caracteres

9.1.2. Números

9.1.3. Valores hexadecimales

9.1.4. Valores booleanos

9.1.5. Valores de bits

9.1.6. Valores NULL

9.2. Nombres de bases de datos, tablas, índices, columnas y alias

9.2.1. Cualificadores de los identificadores

9.2.2. Sensibilidad a mayúsuclas y minúsculas de identificadores

9.3. Variables de usuario

9.4. Variables de sistema

9.4.1. Variables estructuradas de sistema

9.5. Sintaxis de comentarios

9.6. Tratamiento de palabras reservadas en MySQL

10. Soporte de conjuntos de caracteres

10.1. Conjuntos de caracteres y colaciones en general

10.2. Conjuntos de caracteres y colaciones en MySQL

10.3. Determinar el conjunto de caracteres y la colación por defecto

10.3.1. Conjunto de caracteres y colación del servidor

10.3.2. Conjuntos de caracteres y colaciones de la base de datos

10.3.3. Conjunto de caracteres y colación de tabla

10.3.4. Conjunto de caracteres y colación de columnas

10.3.5. Ejemplos de asignación de conjunto de caracteres y colación

10.3.6. Conjunto de caracteres y colación de la conexión

10.3.7. Conjunto de caracteres y colación de columnas "carácter"

10.3.8. Usar COLLATE en sentencias SQL

10.3.9. Precedencia de la cláusula COLLATE

10.3.10. Operador BINARY

10.3.11. Casos especiales en los que determinar la colación es complicado

10.3.12. A cada colación un conjunto de caracteres correcto

10.3.13. Un ejemplo del efecto de una colación

10.4. Efectos del soporte de conjuntos de caracteres

10.4.1. Cadenas de caracteres de resultado

10.4.2. CONVERT()

10.4.3. CAST()

10.4.4. Sentencias SHOW

10.5. Soporte Unicode

10.6. UTF8 para metadatos

10.7. Compatibilidad con otros SGBDs (Sistemas gestores de bases de datos)

10.8. Formato del nuevo fichero de conjunto de caracateres

10.9. Conjunto de caracteres nacional

10.10. Conjuntos de caracteres y colaciones que soporta MySQL

10.10.1. Conjuntos de caracteres Unicode

10.10.2. Conjuntos de caracteres de Europa occidental

10.10.3. Conjuntos de caracteres de Europa central

10.10.4. Conjuntos de caracteres del sur de Europa y de Oriente Medio

10.10.5. Conjuntos de caracteres bálticos

10.10.6. Conjuntos de caracteres cirílicos

10.10.7. Conjuntos de caracteres asiáticos

11. Tipos de columna

11.1. Panorámica de tipos de columna

11.1.1. Panorámica de tipos numéricos

11.1.2. Panorámica de tipos de fechas y hora

11.1.3. Panorámica de tipos de cadenas de caracteres

11.2. Tipos numéricos

11.3. Tipos de fecha y hora

11.3.1. Los tipos de datos DATETIME, DATE y TIMESTAMP

11.3.2. El tipo TIME

11.3.3. El tipo de datos YEAR

11.3.4. Efecto 2000 (Y2K) y tipos de datos

11.4. Tipos de cadenas de caracteres

11.4.1. Los tipos CHAR y VARCHAR

11.4.2. Los tipos BINARY y VARBINARY

11.4.3. Los tipos BLOB y TEXT

11.4.4. El tipo de columna ENUM

11.4.5. El tipo SET

11.5. Requisitos de almacenamiento según el tipo de columna

11.6. Escoger el tipo de columna correcto

11.7. Usar tipos de columnas de otros motores de bases de datos

12. Funciones y operadores

12.1. Operadores

12.1.1. Precedencias de los operadores

12.1.2. Paréntesis

12.1.3. Funciones y operadores de comparación

12.1.4. Operadores lógicos

12.2. Funciones de control de flujo

12.3. Funciones para cadenas de caracteres

12.3.1. Funciones de comparación de cadenas de caracteres

12.4. Funciones numéricas

12.4.1. Operadores aritméticos

12.4.2. Funciones matemáticas

12.5. Funciones de fecha y hora

12.6. Qué calendario utiliza MySQL

12.7. Funciones de búsqueda de texto completo (Full-Text)

12.7.1. Búsquedas booleanas de texto completo (Full-Text)

12.7.2. Búsquedas de texto completo (Full-Text) con expansión de consulta

12.7.3. Limitaciones de las búsquedas de texto completo (Full-Text)

12.7.4. Afinar búsquedas de texto completo (Full-Text) con MySQL

12.7.5. Cosas por hacer en búsquedas de texto completo (Full-Text)

12.8. Funciones y operadores de cast

12.9. Otras funciones

12.9.1. Funciones bit

12.9.2. Funciones de encriptación

12.9.3. Funciones de información

12.9.4. Funciones varias

12.10. Funciones y modificadores para cláusulas GROUP BY

12.10.1. Funciones (de agregación) de GROUP BY

12.10.2. Modificadores de GROUP BY

12.10.3. GROUP BY con campos escondidos

13. Sintaxis de sentencias SQL

13.1. Sentencias de definición de datos (Data Definition Statements)

13.1.1. Sintaxis de ALTER DATABASE

13.1.2. Sintaxis de ALTER TABLE

13.1.3. Sintaxis de CREATE DATABASE

13.1.4. Sintaxis de CREATE INDEX

13.1.5. Sintaxis de CREATE TABLE

13.1.6. Sintaxis de DROP DATABASE

13.1.7. Sintaxis de DROP INDEX

13.1.8. Sintaxis de DROP TABLE

13.1.9. Sintaxis de RENAME TABLE

13.2. Sentencias de manipulación de datos (Data Manipulation Statements)

13.2.1. Sintaxis de DELETE

13.2.2. Sintaxis de DO

13.2.3. Sintaxis de HANDLER

13.2.4. Sintaxis de INSERT

13.2.5. Sintaxis de LOAD DATA INFILE

13.2.6. Sintaxis de REPLACE

13.2.7. Sintaxis de SELECT

13.2.8. Sintaxis de subconsultas

13.2.9. Sintaxis de TRUNCATE

13.2.10. Sintaxis de UPDATE

13.3. Sentencias útiles de MySQL

13.3.1. Sintaxis de DESCRIBE (Información acerca de las columnas)

13.3.2. Sintaxis de USE

13.4. Comandos transaccionales y de bloqueo de MySQL

13.4.1. Sintaxis de START TRANSACTION, COMMIT y ROLLBACK

13.4.2. Sentencias que no se pueden deshacer

13.4.3. Sentencias que causan una ejecución (commit) implícita

13.4.4. Sintaxis de SAVEPOINT y ROLLBACK TO SAVEPOINT

13.4.5. Sintaxis de LOCK TABLES y UNLOCK TABLES

13.4.6. Sintaxis de SET TRANSACTION

13.5. Sentencias de administración de base de datos

13.5.1. Sentencias para la gestión de cuentas

13.5.2. Sentencias para el mantenimiento de tablas

13.5.3. Sintaxis de SET

13.5.4. Sintaxis de SHOW

13.5.5. Otras sentencias para la administración

13.6. Sentencias de replicación

13.6.1. Sentencias SQL para el control de servidores maestros

13.6.2. Sentencias SQL para el control de servidores esclavos

13.7. Sintaxis SQL de sentencias preparadas

14. Motores de almacenamiento de MySQL y tipos de tablas

14.1. El motor de almacenamiento MyISAM

14.1.1. Opciones de arranque de MyISAM

14.1.2. Cuánto espacio necesitan las claves

14.1.3. Formatos de almacenamiento de tablas MyISAM

14.1.4. Problemas en tablas MyISAM

14.2. El motor de almacenamiento MERGE

14.2.1. Problemas con tablas MERGE

14.3. El motor de almacenamiento MEMORY (HEAP)

14.4. El motor de almacenamiento BDB (BerkeleyDB)

14.4.1. Sistemas operativos que soporta BDB

14.4.2. Instalación de BDB

14.4.3. Opciones de arranque de BDB

14.4.4. Características de las tablas BDB

14.4.5. Temas pendientes de arreglo para BDB

14.4.6. Limitaciones en las tablas BDB

14.4.7. Errores que pueden darse en el uso de tablas BDB

14.5. El motor de almacenamiento EXAMPLE

14.6. El motor de almacenamiento FEDERATED

14.6.1. Instalación del motor de almacenamiento FEDERATED

14.6.2. Descripción del motor de almacenamiento FEDERATED

14.6.3. Cómo usar las tablas FEDERATED

14.6.4. Limitaciones del motor de almacenamiento FEDERATED

14.7. El motor de almacenamiento ARCHIVE

14.8. El motor de almacenamiento CSV

15. El motor de almacenamiento InnoDB

15.1. Panorámica de InnoDB

15.2. Información de contacto de InnoDB

15.3. Configuración de InnoDB

15.4. Opciones de arranque de InnoDB

15.5. Crear el espacio de tablas InnoDB

15.5.1. Resolución de problemas en la inicialización de InnoDB

15.6. Crear tablas InnoDB

15.6.1. Cómo utilizar transacciones en InnoDB con distintas APIs

15.6.2. Pasar tablas MyISAM a InnoDB

15.6.3. Cómo funciona una columna AUTO_INCREMENT en InnoDB

15.6.4. Restricciones (constraints) FOREIGN KEY

15.6.5. InnoDB y replicación MySQL

15.6.6. Usar un espacio de tablas para cada tabla

15.7. Añadir y suprimir registros y ficheros de datos InnoDB

15.8. Hacer una copia de seguridad y recuperar una base de datos InnoDB

15.8.1. Forzar una recuperación

15.8.2. Marcadores

15.9. Trasladar una base de datos InnoDB a otra máquina

15.10. Bloqueo y modelo de transacciones de InnoDB

15.10.1. Modos de bloqueo InnoDB

15.10.2. InnoDB y AUTOCOMMIT

15.10.3. InnoDB y TRANSACTION ISOLATION LEVEL

15.10.4. Lecturas consistentes que no bloquean

15.10.5. Bloquear lecturas SELECT ... FOR UPDATE y SELECT ... LOCK IN SHARE MODE

15.10.6. Bloqueo de la próxima clave (Next-Key Locking): evitar el problema fantasma

15.10.7. Un ejemplo de lectura consistente en InnoDB

15.10.8. Establecimiento de bloqueos con diferentes sentencias SQL en InnoDB

15.10.9. ¿Cuándo ejecuta o deshace implicitamente MySQL una transacción?

15.10.10. Detección de interbloqueos (deadlocks) y cancelación de transacciones (rollbacks)

15.10.11. Cómo tratar con interbloqueos

15.11. Consejos de afinamiento del rendimiento de InnoDB

15.11.1. SHOW INNODB STATUS y los monitores InnoDB

15.12. Implementación de multiversión

15.13. Estructuras de tabla y de índice

15.13.1. Estructura física de un índice

15.13.2. Búfer de inserciones

15.13.3. Indices hash adaptables

15.13.4. Estructura física de los registros

15.14. Gestión de espacio de ficheros y de E/S de disco (Disk I/O)

15.14.1. E/S de disco (Disk I/O)

15.14.2. Usar dispositivos en bruto (raw devices) para espacios de tablas

15.14.3. Gestión del espacio de ficheros

15.14.4. Desfragmentar una tabla

15.15. Tratamiento de errores de InnoDB

15.15.1. Códigos de error de InnoDB

15.15.2. Códigos de error del sistema oeprativo

15.16. Restricciones de las tablas InnoDB

15.17. Resolver problemas relacionados con InnoDB

15.17.1. Resolver problemas de las operaciones del diccionario de datos de InnoDB

16. MySQL Cluster

16.1. Panorámica de MySQL Cluster

16.2. Conceptos básicos de Basic MySQL Cluster

16.3. Cómo configurar varios ordenadores

16.3.1. Hardware, software y redes

16.3.2. Instalación

16.3.3. Configuración

16.3.4. Arranque inicial

16.3.5. Cargar datos de ejemplo y realizar consultas

16.3.6. Apagado y encendido seguros

16.4. Configuración de MySQL Cluster

16.4.1. Generar MySQL Cluster desde el código fuente

16.4.2. Instalar el software

16.4.3. Rápido montaje de prueba de MySQL Cluster

16.4.4. Fichero de configuración

16.5. Gestión de procesos en MySQL Cluster

16.5.1. El uso del proceso del servidor MySQL para MySQL Cluster

16.5.2. ndbd, el proceso del nodo de motor de almacenamiento

16.5.3. El proceso del servidor de administración ndb_mgmd

16.5.4. El proceso de cliente de administración ndb_mgm

16.5.5. Opciones de comando para procesos de MySQL Cluster

16.6. Administración de MySQL Cluster

16.6.1. Comandos del cliente de administración

16.6.2. Informes de eventos generados por MySQL Cluster

16.6.3. Modo de usuario único

16.6.4. Copias de seguridad On-line para MySQL Cluster

16.7. Usar interconexiones de alta velocidad con MySQL Cluster

16.7.1. Configurar MySQL Cluster para que utilice Sockets SCI

16.7.2. Entender el impacto de interconexiones de nodos

16.8. Limitaciones conocidas de MySQL Cluster

16.9. Mapa de desarrollo de MySQL Cluster

16.9.1. Cambios de MySQL Cluster en MySQL 5.0

16.9.2. Mapa de desarrollo de MySQL 5.1 para MySQL Cluster

16.10. Preguntas frecuentes sobre MySQL Cluster

16.11. Glosario de MySQL Cluster

17. Introducción a MaxDB

17.1. Historia de MaxDB

17.2. Licenciamiento y soporte

17.3. Enlaces relacionados con MaxDB

17.4. Conceptos básicos de MaxDB

17.5. Diferencias de prestaciones entre MaxDB y MySQL

17.6. Características de interoperabilidad entre MaxDB y MySQL

17.7. Palabras reservadas de MaxDB

18. Extensiones espaciales de MySQL

18.1. Introducción

18.2. El modelo geométrico OpenGIS

18.2.1. La jerarquía de las clases geométricas

18.2.2. La clase Geometry

18.2.3. La clase Point

18.2.4. La clase Curve

18.2.5. La clase LineString

18.2.6. La clase Surface

18.2.7. La clase Polygon

18.2.8. La clase GeometryCollection

18.2.9. La clase MultiPoint

18.2.10. La clase MultiCurve

18.2.11. La clase MultiLineString

18.2.12. La clase MultiSurface

18.2.13. La clase MultiPolygon

18.3. Formatos de datos espaciales soportados

18.3.1. Formato Well-Known Text (WKT)

18.3.2. Formato Well-Known Binary (WKB)

18.4. Crear una base de datos MySQL con capacidades espaciales

18.4.1. Tipos de datos espaciales de MySQL

18.4.2. Crear valores espaciales

18.4.3. Crear columnas espaciales

18.4.4. Poblar columnas espaciales

18.4.5. Extraer datos espaciales

18.5. Analizar información espacial

18.5.1. Funciones de conversión de formato geométrico

18.5.2. Funciones Geometry

18.5.3. Funciones que crean nuevas geometrías a partir de unas existentes

18.5.4. Funciones para probar relaciones espaciales entre objetos geométricos

18.5.5. Relaciones entre rectángulos MBR (Minimal Bounding Rectangles)

18.5.6. Funciones que prueban relaciones espaciales entre geometrías

18.6. Optimización del análisis espacial

18.6.1. Crear índices espaciales

18.6.2. Usar un índice espacial

18.7. Conformidad y compatibilidad de MySQL

18.7.1. Características GIS que todavía no han sido implementadas

19. Procedimientos almacenados y funciones

19.1. Procedimientos almacenados y las tablas de permisos

19.2. Sintaxis de procedimientos almacenados

19.2.1. CREATE PROCEDURE y CREATE FUNCTION

19.2.2. ALTER PROCEDURE y ALTER FUNCTION

19.2.3. DROP PROCEDURE y DROP FUNCTION

19.2.4. SHOW CREATE PROCEDURE y SHOW CREATE FUNCTION

19.2.5. SHOW PROCEDURE STATUS y SHOW FUNCTION STATUS

19.2.6. La sentencia CALL

19.2.7. Sentencia compuesta BEGIN ... END

19.2.8. Sentencia DECLARE

19.2.9. Variables en procedimientos almacenados

19.2.10. Conditions and Handlers

19.2.11. Cursores

19.2.12. Constructores de control de flujo

19.3. Registro binario de procedimientos almacenados y disparadores

20. Disparadores (triggers)

20.1. Sintaxis de CREATE TRIGGER

20.2. Sintaxis de DROP TRIGGER

20.3. Utilización de disparadores

21. Vistas (Views)

21.1. Sintaxis de ALTER VIEW

21.2. Sintaxis de CREATE VIEW

21.3. Sintaxis de DROP VIEW

21.4. Sintaxis de SHOW CREATE VIEW

22. La base de datos de información INFORMATION_SCHEMA

22.1. Las tablas INFORMATION_SCHEMA

22.1.1. La tabla INFORMATION_SCHEMA SCHEMATA

22.1.2. La tabla INFORMATION_SCHEMA TABLES

22.1.3. La tabla INFORMATION_SCHEMA COLUMNS

22.1.4. La tabla INFORMATION_SCHEMA STATISTICS

22.1.5. La tabla INFORMATION_SCHEMA USER_PRIVILEGES

22.1.6. La tabla INFORMATION_SCHEMA SCHEMA_PRIVILEGES

22.1.7. La tabla INFORMATION_SCHEMA TABLE_PRIVILEGES

22.1.8. La tabla INFORMATION_SCHEMA COLUMN_PRIVILEGES

22.1.9. La tabla INFORMATION_SCHEMA CHARACTER_SETS

22.1.10. La tabla INFORMATION_SCHEMA COLLATIONS

22.1.11. La tabla INFORMATION_SCHEMA COLLATION_CHARACTER_SET_APPLICABILITY

22.1.12. La tabla INFORMATION_SCHEMA TABLE_CONSTRAINTS

22.1.13. La tabla INFORMATION_SCHEMA KEY_COLUMN_USAGE

22.1.14. La tabla INFORMATION_SCHEMA ROUTINES

22.1.15. La tabla INFORMATION_SCHEMA VIEWS

22.1.16. La tabla INFORMATION_SCHEMA TRIGGERS

22.1.17. Otras tablas INFORMATION_SCHEMA

22.2. Extensiones a las sentencias SHOW

23. Matemáticas de precisión

23.1. Tipos de valores numéricos

23.2. Cambios en el tipo de datos DECIMAL

23.3. Manejo de expresiones

23.4. Cómo se redondea

23.5. Ejemplos de matemáticas de precisión

24. APIs de MySQL

24.1. msql2mysql —

24.2. mysql_config —

24.3. La API C de MySQL

24.3.1. Tipos de datos de la API C

24.3.2. Panorámica de funciones de la API C

24.3.3. Descripción de funciones de la API C

24.3.4. Sentencias preparadas de la API C

24.3.5. Tipos de datos de sentencias preparadas de la API C

24.3.6. Panorámica de las funciones de sentencias preparadas de la API C

24.3.7. Descripciones de funciones de sentencias preparadas de la API C

24.3.8. Problemas con sentencias preparadas de la API C

24.3.9. Tratamiento por parte de la API C de la ejecución de múltiples consultas

24.3.10. Manejo de valores de fecha y hora por parte de la API C

24.3.11. Descripción de funciones de la API C para el control de subprocesos

24.3.12. Descripción de las funciones de la API C del servidor incrustado (embedded)

24.3.13. Preguntas y problemas comunes en el uso de la API C

24.3.14. Generar programas cliente

24.3.15. Cómo hacer un cliente multihilo

24.3.16. libmysqld, la biblioteca del servidor MySQL incrustado (embedded)

24.4. API PHP de MySQL

24.4.1. Problemas comunes con MySQL y PHP

24.5. La API Perl de MySQL

24.6. API C++ de MySQL

24.6.1. Borland C++

24.7. La API Python de MySQL

24.8. La API Tcl de MySQL

24.9. El visor de MySQL Eiffel

25. Conectores

25.1. MySQL Connector/ODBC

25.1.1. Introduction to Connector/ODBC

25.1.2. Connector/ODBC Installation

25.1.3. Connector/ODBC Configuration

25.1.4. Connector/ODBC Examples

25.1.5. Connector/ODBC Reference

25.1.6. Connector/ODBC Notes and Tips

25.1.7. Connector/ODBC Support

25.2. MySQL Connector/NET

25.2.1. Connector/NET Versions

25.2.2. Connector/NET Installation

25.2.3. Connector/NET Examples

25.2.4. Connector/NET Reference

25.2.5. Connector/NET Notes and Tips

25.2.6. Connector/NET Support

25.3. MySQL Visual Studio Plugin

25.3.1. Installing the MySQL Visual Studio Plugin

25.3.2. Creating a connection to the MySQL server

25.3.3. Using the MySQL Visual Studio Plugin

25.3.4. Visual Studio Plugin Support

25.4. MySQL Connector/J

25.4.1. Connector/J Versions

25.4.2. Connector/J Installation

25.4.3. Connector/J Examples

25.4.4. Connector/J (JDBC) Reference

25.4.5. Connector/J Notes and Tips

25.4.6. Connector/J Support

25.5. MySQL Connector/MXJ

25.5.1. Introduction to Connector/MXJ

25.5.2. Connector/MXJ Installation

25.5.3. Connector/MXJ Configuration

25.5.4. Connector/MXJ Reference

25.5.5. Connector/MXJ Notes and Tips

25.5.6. Connector/MXJ Support

25.6. Connector/PHP

26. Manejo de errores en MySQL

27. Extender MySQL

27.1. El interior de MySQL

27.1.1. Los subprocesos (threads) MySQL

27.1.2. El paquete de pruebas MySQL Test

27.2. Añadir nuevas funciones a MySQL

27.2.1. Características de la interfaz para funciones definidas por el usuario

27.2.2. Sintaxis de CREATE FUNCTION/DROP FUNCTION

27.2.3. Añadir una nueva función definida por el usuario

27.2.4. Añadir una nueva función nativa

27.3. Añadir nuevos procedimientos a MySQL

27.3.1. Procedimiento Analyse

27.3.2. Escribir un procedimiento

A. Problemas y errores comunes

A.1. Cómo determinar a qué es debido un problema

A.2. Errores comunes al usar programas MySQL

A.2.1. Access denied

A.2.2. Can't connect to [local] MySQL server

A.2.3. Client does not support authentication protocol

A.2.4. La contraseña falla cuando se introduce interactivamente

A.2.5. La máquina 'host_name' está bloqueada

A.2.6. Demasiadas conexiones

A.2.7. Out of memory

A.2.8. MySQL se ha apagado

A.2.9. Packet too large

A.2.10. Errores de comunicación y conexiones abortadas

A.2.11. The table is full

A.2.12. Can't create/write to file

A.2.13. Commands out of sync

A.2.14. Ignoring user

A.2.15. Table 'nombre_de_tabla' doesn't exist

A.2.16. Can't initialize character set

A.2.17. No se encontró el fichero

A.3. Problemas relacionados con la instalación

A.3.1. Problemas al enlazar a la biblioteca de clientes MySQL

A.3.2. Cómo ejecutar MySQL como usuario normal

A.3.3. Problemas con permisos de archivos

A.4. Cuestiones relacionadas con la administración

A.4.1. Cómo reiniciar la contraseña de root

A.4.2. Qué hacer si MySQL sigue fallando (crashing)

A.4.3. Cómo se comporta MySQL ante un disco lleno

A.4.4. Dónde almacena MySQL los archivos temporales

A.4.5. Cómo proteger o cambiar el fichero socket de MySQL /tmp/mysql.sock

A.4.6. Problemas con las franjas horarias

A.5. Problemas relacionados con consultas

A.5.1. Sensibilidad a mayúsculas en búsquedas

A.5.2. Problemas en el uso de columnas DATE

A.5.3. Problemas con valores NULL

A.5.4. Problemas con alias de columnas

A.5.5. Fallo en la cancelación de una transacción con tablas no transaccionales

A.5.6. Borrar registros de tablas relacionadas

A.5.7. Resolver problemas con registros que no salen

A.5.8. Problemas con comparaciones en coma flotante

A.6. Cuestiones relacionadas con el optimizador

A.7. Cuestiones relacionadas con definiciones de tabla

A.7.1. Problemas con ALTER TABLE

A.7.2. Cómo cambiar el orden de las columnas en una tabla

A.7.3. Problemas con TEMPORARY TABLE

A.8. Problemas conocidos en MySQL

A.8.1. Problemas de la versión 3.23 resueltos en una versión posterior de MySQL

A.8.2. Problemas de la versión 4.0 resueltos en una versión posterior de MySQL

A.8.3. Problemas de la versión 4.1 resueltos en una versión posterior de MySQL

A.8.4. Cuestiones abiertas en MySQL

B. Credits

B.1. Desarrolladores de MySQL AB

B.2. Han contribuido a crear MySQL

B.3. Documentadores y traductores

B.4. Bibliotecas incluidas en MySQL y que MySQL utiliza

B.5. Paquetes que soportan MySQL

B.6. Herramientas utilizadas en la creación de MySQL

B.7. Han ayudado a MySQL

C. Historial de cambios de MySQL

C.1. Cambios en la entrega 5.0.x (Desarrollo)

C.1.1. Cambios en la entrega 5.0.11 (todavía no liberada)

C.1.2. Cambios en la entrega 5.0.10 (todavía no liberada)

C.1.3. Cambios en la entrega 5.0.9 (15 julio 2005)

C.1.4. Cambios en la entrega 5.0.8 (not released)

C.1.5. Cambios en la entrega 5.0.7 (10 June 2005)

C.1.6. Cambios en la entrega 5.0.6 (26 May 2005)

C.1.7. Cambios en la entrega 5.0.5 (not released)

C.1.8. Cambios en la entrega 5.0.4 (16 Apr 2005)

C.1.9. Cambios en la entrega 5.0.3 (23 Mar 2005: Beta)

C.1.10. Cambios en la entrega 5.0.2 (01 Dec 2004)

C.1.11. Cambios en la entrega 5.0.1 (27 Jul 2004)

C.1.12. Cambios en la entrega 5.0.0 (22 Dec 2003: Alpha)

C.2. Cambios en MySQL Connector/ODBC (MyODBC)

C.2.1. Changes in Connector/ODBC 5.0.10 (14 December 2006)

C.2.2. Changes in Connector/ODBC 5.0.9 (22 November 2006)

C.2.3. Changes in Connector/ODBC 5.0.8 (17 November 2006)

C.2.4. Changes in Connector/ODBC 5.0.7 (08 November 2006)

C.2.5. Changes in Connector/ODBC 5.0.6 (03 November 2006)

C.2.6. Changes in Connector/ODBC 5.0.5 (17 October 2006)

C.2.7. Changes in Connector/ODBC 5.0.3 (Connector/ODBC 5.0 Alpha 3) (20 June 2006)

C.2.8. Changes in Connector/ODBC 5.0.2 (Never released)

C.2.9. Changes in Connector/ODBC 5.0.1 (Connector/ODBC 5.0 Alpha 2) (05 June 2006)

C.2.10. Changes in Connector/ODBC 3.51.13 (Not yet released)

C.2.11. Cambios en MyODBC 3.51.12

C.2.12. Cambios en MyODBC 3.51.11

C.3. Connector/NET Change History

C.3.1. Changes in MySQL Connector/NET Version 5.0.4 (Not yet released)

C.3.2. Changes in MySQL Connector/NET Version 5.0.3 (05 January 2007)

C.3.3. Changes in MySQL Connector/NET Version 5.0.2 (06 November 2006)

C.3.4. Changes in MySQL Connector/NET Version 5.0.1 (01 October 2006)

C.3.5. Changes in MySQL Connector/NET Version 5.0.0 (08 August 2006)

C.3.6. Changes in MySQL Connector/NET Version 1.0.9 (Not yet released)

C.3.7. Changes in MySQL Connector/NET Version 1.0.8 (20 October 2006)

C.3.8. Changes in MySQL Connector/NET Version 1.0.7 (21 November 2005)

C.3.9. Changes in MySQL Connector/NET Version 1.0.6 (03 October 2005)

C.3.10. Changes in MySQL Connector/NET Version 1.0.5 (29 August 2005)

C.3.11. Changes in MySQL Connector/NET Version 1.0.4 (20 January 2005)

C.3.12. Changes in MySQL Connector/NET Version 1.0.3-gamma (12 October 2004)

C.3.13. Changes in MySQL Connector/NET Version 1.0.2-gamma (15 November 2004)

C.3.14. Changes in MySQL Connector/NET Version 1.0.1-beta2 (27 October 2004)

C.3.15. Changes in MySQL Connector/NET Version 1.0.0 (01 September 2004)

C.3.16. Changes in MySQL Connector/NET Version 0.9.0 (30 August 2004)

C.3.17. Changes in MySQL Connector/NET Version 0.76

C.3.18. Changes in MySQL Connector/NET Version 0.75

C.3.19. Changes in MySQL Connector/NET Version 0.74

C.3.20. Changes in MySQL Connector/NET Version 0.71

C.3.21. Changes in MySQL Connector/NET Version 0.70

C.3.22. Changes in MySQL Connector/NET Version 0.68

C.3.23. Changes in MySQL Connector/NET Version 0.65

C.3.24. Changes in MySQL Connector/NET Version 0.60

C.3.25. Changes in MySQL Connector/NET Version 0.50

C.4. MySQL Visual Studio Plugin Change History

C.4.1. Changes in MySQL Visual Studio Plugin 1.0.2 (Not yet released)

C.4.2. Changes in MySQL Visual Studio Plugin 1.0.1 (4 October 2006)

C.4.3. Changes in MySQL Visual Studio Plugin 1.0.0 (4 October 2006)

C.5. MySQL Connector/J Change History

C.5.1. Changes in MySQL Connector/J 5.1.x

C.5.2. Changes in MySQL Connector/J 5.0.x

C.5.3. Changes in MySQL Connector/J 3.1.x

C.5.4. Changes in MySQL Connector/J 3.0.x

C.5.5. Changes in MySQL Connector/J 2.0.x

C.5.6. Changes in MySQL Connector/J 1.2b (04 July 1999)

C.5.7. Changes in MySQL Connector/J 1.2.x and lower

D. Portar a otros sistemas

D.1. Depurar un servidor MySQL

D.1.1. Compilación de MySQL para depuración

D.1.2. Crear ficheros de traza

D.1.3. Depurar mysqld con gdb

D.1.4. Usar stack trace

D.1.5. El uso de registros (logs) para encontrar la causa de errores de mysqld

D.1.6. Crear un caso de prueba tras haber encontrado una tabla corrupta

D.2. Depuración de un cliente MySQL

D.3. El paquete DBUG

D.4. Comentarios sobre subprocesos RTS

D.5. Diferencias entre paquetes de control de subprocesos

E. Variables de entorno

F. Expresiones regulares en MySQL

G. Límites en MySQL

G.1. Límites de los joins

H. Restricciones en características de MySQL

H.1. Restricciones en procedimientos almacenados y disparadores

H.2. Restricciones en cursores del lado del servidor

H.3. Restricciones en subconsultas

H.4. Restricciones en vistas

I. GNU General Public License

J. MySQL FLOSS License Exception

Índice

Lista de ejemplos

25.1. Obtaining a connection from the DriverManager

25.2. Using java.sql.Statement to execute a SELECT query

25.3. Stored Procedures

25.4. Using Connection.prepareCall()

25.5. Registering output parameters

25.6. Setting CallableStatement input parameters

25.7. Retrieving results and output parameter values

25.8. Retrieving AUTO_INCREMENT column values using Statement.getGeneratedKeys()

25.9. Retrieving AUTO_INCREMENT column values using SELECT LAST_INSERT_ID()

25.10. Retrieving AUTO_INCREMENT column values in Updatable ResultSets

25.11. Using a connection pool with a J2EE application server

25.12. Example of transaction with retry logic

Consulta los datos bibliográficos principales de esta edición para identificar correctamente el recurso, revisar su autoría y verificar detalles como ISBN, tema, subtema, archivo e idioma.

¿Qué piensas de este libro?

No hay comentarios
Avatar

Aún no hay comentarios

Sé el primero en compartir tu opinión sobre este contenido.

Escribir un comentario