Shuwartz, Baron / Zaitsev, Meter / Tkachenko, Vadim
Esta obra le enseña a crear rápidamente sistemas fiables con MySQL. Escrito por expertos con una amplia experiencia práctica en la creación de grandes sistemas, esta edición analiza el rendimiento de MySQL con detalle y se centra en la solidez, la seguridad y la integridad de los datos. Aprenderá las técnicas avanzadas para que pueda aprovechar todo el potencial de MySQL, a diseñar esquemas, Ãndices, consultas y opciones de MySQL avanzadas para obtener un máximo rendimiento. Además, tendrá una guÃa detallada para el ajuste de su servidor MySQL, sus sistemas operativos y su hardware para utilizar su máximo potencial. También se incluyen métodos prácticos, seguros y de alto rendimiento para escalar aplicaciones con el replicado, los balances de carga, la alta disponibilidad y los procedimientos contra fallos.Prólogo Introducción Organización de este libro Una amplia visión general Conseguir unos fundamentos sólidos Ajustar la aplicación Escalar hacia arriba tras realizar cambios Conseguir una aplicación fiable Diversos temas útiles Versiones y disponibilidad de software Convenciones Recursos útiles para el lector CapÃtulo 1. Arquitectura de MySQL Arquitectura lógica de MySQL Administración y seguridad de la conexión Optimización y ejecución Control de concurrencia Bloqueos de lectura y escritura Granularidad del bloqueo Bloqueos de tablas Bloqueos de fila Transacciones Niveles de aislamiento Interbloqueos Registro de transacciones Transacciones en MySQL AUTOCOMMIT Combinar motores de almacenamiento en las transacciones Bloqueos implÃcitos y explÃcitos Control de concurrencia de múltiples versiones Motores de almacenamiento de MySQL Motor MyISAM Almacenamiento CaracterÃsticas de MyISAM Tablas MyISAM comprimidas Motor Merge de MyISAM Motor InnoDB Motor Memory Motor Archive Motor CSV Motor Federated Motor Blackhole Motor NDB Cluster Motor Falcon Motor solidDB Motor PBXT (Primebase XT) Motor de almacenamiento Maria Otros motores de almacenamiento Seleccionar el motor apropiado Consideraciones Ejemplos prácticos Registro Tablas de sólo lectura o principalmente de sólo lectura Procesamiento de orden Cotizaciones Boletines de anuncios y foros de discusiones anidadas Aplicaciones CD-ROM Resumen de los motores de almacenamiento Conversiones de tablas ALTER TABLE Dump e import CREATE y SELECT CapÃtulo 2. Buscar cuellos de botella: medida de rendimiento y perfilado ¿Por qué la medida de rendimiento? Estrategias de medidas de rendimiento Qué medir Tácticas de medidas del rendimiento Diseño y planificación de una medida de rendimiento Obtener resultados precisos Ejecutar las pruebas de comparación y analizar los resultados Herramientas de medida del rendimiento Herramientas de pila completa Herramientas de un solo componente Ejemplos de medidas de rendimiento http_load sysbench Prueba de comparación sysbench de la CPU Prueba de comparación de E/S de archivo de sysbench Prueba de comparación OLTP de sysbench Otros sistemas sysbench dbt2 TPC-C en Database Test Suite MySQL Benchmark Suite Perfilado Perfilar una aplicación Cómo y qué medir Ejemplo de perfilado PHP Registro de consultas Control más detallado del registro Cómo leer el registro de consultas lentas Herramientas de análisis de registro Perfilar un servidor MySQL Perfilar consultas con SHOW STATUS SHOW PROFILE Otros métodos de perfilado de MySQL Cuando no se puede añadir un código de perfilado Perfilado del sistema operativo Solución de problemas en conexiones y procesos MySQL Perfilado y solución de problemas avanzados CapÃtulo 3. Optimización del esquema e indizado Elegir los tipos de datos óptimos Números enteros Números reales Tipos de cadenas Tipos VARCHAR y CHAR Tipos BLOB y TEXT Utilizar ENUM en lugar de un tipo de cadena Tipos de fecha y hora Tipos de datos empaquetados en bits Elegir identificadores Tipos de datos especiales Elementos básicos del indizado Tipos de Ãndices Indices de árbol B Indices hash Indices espaciales (árbol R) Indices de texto completo Estrategias de indizado para un alto rendimiento Aislar la columna Indices de prefijos y selectividad del Ãndice Indices agrupados Comparación de diseños de datos InnoDB y MyISAM Insertar filas en un orden de clave primaria con InnoDB Indices de cobertura Utilizar escaneados de Ãndice para ordenar Indices empaquetados (com