Books & Videos

Table of Contents

  1. Chapter 1 MySQL Architecture and History

    1. MySQL’s Logical Architecture

    2. Concurrency Control

    3. Transactions

    4. Multiversion Concurrency Control

    5. MySQL’s Storage Engines

    6. A MySQL Timeline

    7. MySQL’s Development Model

    8. Summary

  2. Chapter 2 Benchmarking MySQL

    1. Why Benchmark?

    2. Benchmarking Strategies

    3. Benchmarking Tactics

    4. Benchmarking Tools

    5. Benchmarking Examples

    6. Summary

  3. Chapter 3 Profiling Server Performance

    1. Introduction to Performance Optimization

    2. Profiling Your Application

    3. Profiling MySQL Queries

    4. Diagnosing Intermittent Problems

    5. Other Profiling Tools

    6. Summary

  4. Chapter 4 Optimizing Schema and Data Types

    1. Choosing Optimal Data Types

    2. Schema Design Gotchas in MySQL

    3. Normalization and Denormalization

    4. Cache and Summary Tables

    5. Speeding Up ALTER TABLE

    6. Summary

  5. Chapter 5 Indexing for High Performance

    1. Indexing Basics

    2. Benefits of Indexes

    3. Indexing Strategies for High Performance

    4. An Indexing Case Study

    5. Index and Table Maintenance

    6. Summary

  6. Chapter 6 Query Performance Optimization

    1. Why Are Queries Slow?

    2. Slow Query Basics: Optimize Data Access

    3. Ways to Restructure Queries

    4. Query Execution Basics

    5. Limitations of the MySQL Query Optimizer

    6. Query Optimizer Hints

    7. Optimizing Specific Types of Queries

    8. Case Studies

    9. Summary

  7. Chapter 7 Advanced MySQL Features

    1. Partitioned Tables

    2. Views

    3. Foreign Key Constraints

    4. Storing Code Inside MySQL

    5. Cursors

    6. Prepared Statements

    7. User-Defined Functions

    8. Plugins

    9. Character Sets and Collations

    10. Full-Text Searching

    11. Distributed (XA) Transactions

    12. The MySQL Query Cache

    13. Summary

  8. Chapter 8 Optimizing Server Settings

    1. How MySQL’s Configuration Works

    2. What Not to Do

    3. Creating a MySQL Configuration File

    4. Configuring Memory Usage

    5. Configuring MySQL’s I/O Behavior

    6. Configuring MySQL Concurrency

    7. Workload-Based Configuration

    8. Completing the Basic Configuration

    9. Safety and Sanity Settings

    10. Advanced InnoDB Settings

    11. Summary

  9. Chapter 9 Operating System and Hardware Optimization

    1. What Limits MySQL’s Performance?

    2. How to Select CPUs for MySQL

    3. Balancing Memory and Disk Resources

    4. Solid-State Storage

    5. Choosing Hardware for a Replica

    6. RAID Performance Optimization

    7. Storage Area Networks and Network-Attached Storage

    8. Using Multiple Disk Volumes

    9. Network Configuration

    10. Choosing an Operating System

    11. Choosing a Filesystem

    12. Choosing a Disk Queue Scheduler

    13. Threading

    14. Swapping

    15. Operating System Status

    16. Summary

  10. Chapter 10 Replication

    1. Replication Overview

    2. Setting Up Replication

    3. Replication Under the Hood

    4. Replication Topologies

    5. Replication and Capacity Planning

    6. Replication Administration and Maintenance

    7. Replication Problems and Solutions

    8. How Fast Is Replication?

    9. Advanced Features in MySQL Replication

    10. Other Replication Technologies

    11. Summary

  11. Chapter 11 Scaling MySQL

    1. What Is Scalability?

    2. Scaling MySQL

    3. Load Balancing

    4. Summary

  12. Chapter 12 High Availability

    1. What Is High Availability?

    2. What Causes Downtime?

    3. Achieving High Availability

    4. Avoiding Single Points of Failure

    5. Failover and Failback

    6. Summary

  13. Chapter 13 MySQL in the Cloud

    1. Benefits, Drawbacks, and Myths of the Cloud

    2. The Economics of MySQL in the Cloud

    3. MySQL Scaling and HA in the Cloud

    4. The Four Fundamental Resources

    5. MySQL Performance in Cloud Hosting

    6. MySQL Database as a Service (DBaaS)

    7. Summary

  14. Chapter 14 Application-Level Optimization

    1. Common Problems

    2. Web Server Issues

    3. Caching

    4. Extending MySQL

    5. Alternatives to MySQL

    6. Summary

  15. Chapter 15 Backup and Recovery

    1. Why Backups?

    2. Defining Recovery Requirements

    3. Designing a MySQL Backup Solution

    4. Managing and Backing Up Binary Logs

    5. Backing Up Data

    6. Recovering from a Backup

    7. Backup and Recovery Tools

    8. Scripting Backups

    9. Summary

  16. Chapter 16 Tools for MySQL Users

    1. Interface Tools

    2. Command-Line Utilities

    3. SQL Utilities

    4. Monitoring Tools

    5. Summary

  1. Appendix Forks and Variants of MySQL

    1. Percona Server

    2. MariaDB

    3. Drizzle

    4. Other MySQL Variants

    5. Summary

  2. Appendix MySQL Server Status

    1. System Variables

    2. SHOW STATUS

    3. SHOW ENGINE INNODB STATUS

    4. SHOW PROCESSLIST

    5. SHOW ENGINE INNODB MUTEX

    6. Replication Status

    7. The INFORMATION_SCHEMA

    8. The Performance Schema

    9. Summary

  3. Appendix Transferring Large Files

    1. Copying Files

    2. File Copy Benchmarks

  4. Appendix Using EXPLAIN

    1. Invoking EXPLAIN

    2. The Columns in EXPLAIN

    3. Tree-Formatted Output

    4. Improvements in MySQL 5.6

  5. Appendix Debugging Locks

    1. Lock Waits at the Server Level

    2. Lock Waits in InnoDB

  6. Appendix Using Sphinx with MySQL

    1. A Typical Sphinx Search

    2. Why Use Sphinx?

    3. Architectural Overview

    4. Special Features

    5. Practical Implementation Examples

    6. Summary

  7. Colophon