MySQL 5.7 Reference Manual

Including MySQL Cluster NDB 7.5

Abstract

This is the MySQL™ Reference Manual. It documents MySQL 5.7 through 5.7.13, as well as MySQL Cluster releases based on version 7.5 of NDB through 5.7.11-ndb-7.5.2, respectively.

MySQL 5.7 features.  This manual describes features that are not included in every edition of MySQL 5.7; such features may not be included in the edition of MySQL 5.7 licensed to you. If you have any questions about the features included in your edition of MySQL 5.7, refer to your MySQL 5.7 license agreement or contact your Oracle sales representative.

For notes detailing the changes in each release, see the MySQL 5.7 Release Notes.

For legal information, see the Legal Notices.

For help with using MySQL, please visit either the MySQL Forums or MySQL Mailing Lists, where you can discuss your issues with other MySQL users.

For additional documentation on MySQL products, including translations of the documentation into other languages, and downloadable versions in variety of formats, including HTML and PDF formats, see the MySQL Documentation Library.

Licensing information—MySQL 5.7.  This product may include third-party software, used under license. If you are using a Commercial release of MySQL 5.7, see this document for licensing information, including licensing information relating to third-party software that may be included in this Commercial release. If you are using a Community release of MySQL 5.7, see this document for licensing information, including licensing information relating to third-party software that may be included in this Community release.

Licensing information—MySQL Cluster.  This product may include third-party software, used under license. If you are using a Community release of MySQL Cluster NDB 7.5, see this document for licensing information, including licensing information relating to third-party software that may be included in this Community release.

Document generated on: 2016-03-20 (revision: 47124)


Table of Contents

Preface and Legal Notices
1 General Information
1.1 About This Manual
1.2 Typographical and Syntax Conventions
1.3 Overview of the MySQL Database Management System
1.3.1 What is MySQL?
1.3.2 The Main Features of MySQL
1.3.3 History of MySQL
1.4 What Is New in MySQL 5.7
1.5 Server and Status Variables and Options Added, Deprecated, or Removed in MySQL 5.7
1.6 MySQL Information Sources
1.6.1 MySQL Mailing Lists
1.6.2 MySQL Community Support at the MySQL Forums
1.6.3 MySQL Community Support on Internet Relay Chat (IRC)
1.6.4 MySQL Enterprise
1.7 How to Report Bugs or Problems
1.8 MySQL Standards Compliance
1.8.1 MySQL Extensions to Standard SQL
1.8.2 MySQL Differences from Standard SQL
1.8.3 How MySQL Deals with Constraints
1.9 Credits
1.9.1 Contributors to MySQL
1.9.2 Documenters and translators
1.9.3 Packages that support MySQL
1.9.4 Tools that were used to create MySQL
1.9.5 Supporters of MySQL
2 Installing and Upgrading MySQL
2.1 General Installation Guidance
2.1.1 Which MySQL Version and Distribution to Install
2.1.2 How to Get MySQL
2.1.3 Verifying Package Integrity Using MD5 Checksums or GnuPG
2.1.4 Installation Layouts
2.1.5 Compiler-Specific Build Characteristics
2.2 Installing MySQL on Unix/Linux Using Generic Binaries
2.3 Installing MySQL on Microsoft Windows
2.3.1 MySQL Installation Layout on Microsoft Windows
2.3.2 Choosing An Installation Package
2.3.3 Installing MySQL on Microsoft Windows Using MySQL Installer
2.3.4 MySQL Notifier
2.3.5 Installing MySQL on Microsoft Windows Using a noinstall Zip Archive
2.3.6 Troubleshooting a Microsoft Windows MySQL Server Installation
2.3.7 Windows Postinstallation Procedures
2.3.8 Upgrading MySQL on Windows
2.4 Installing MySQL on OS X
2.4.1 General Notes on Installing MySQL on OS X
2.4.2 Installing MySQL on OS X Using Native Packages
2.4.3 Installing a MySQL Launch Daemon
2.4.4 Installing and Using the MySQL Preference Pane
2.5 Installing MySQL on Linux
2.5.1 Installing MySQL on Linux Using the MySQL Yum Repository
2.5.2 Replacing a Third-Party Distribution of MySQL Using the MySQL Yum Repository
2.5.3 Installing MySQL on Linux Using the MySQL APT Repository
2.5.4 Installing MySQL on Linux Using the MySQL SLES Repository
2.5.5 Installing MySQL on Linux Using RPM Packages from Oracle
2.5.6 Installing MySQL on Linux Using Debian Packages from Oracle
2.5.7 Installing MySQL on Linux from the Native Software Repositories
2.5.8 Installing MySQL on Linux with docker
2.5.9 Installing MySQL on Linux with juju
2.5.10 Managing MySQL Server with systemd
2.6 Installing MySQL Using Unbreakable Linux Network (ULN)
2.7 Installing MySQL on Solaris and OpenSolaris
2.7.1 Installing MySQL on Solaris Using a Solaris PKG
2.7.2 Installing MySQL on OpenSolaris Using IPS
2.8 Installing MySQL on FreeBSD
2.9 Installing MySQL from Source
2.9.1 MySQL Layout for Source Installation
2.9.2 Installing MySQL Using a Standard Source Distribution
2.9.3 Installing MySQL Using a Development Source Tree
2.9.4 MySQL Source-Configuration Options
2.9.5 Dealing with Problems Compiling MySQL
2.9.6 MySQL Configuration and Third-Party Tools
2.10 Postinstallation Setup and Testing
2.10.1 Initializing the Data Directory
2.10.2 Starting the Server
2.10.3 Testing the Server
2.10.4 Securing the Initial MySQL Accounts
2.10.5 Starting and Stopping MySQL Automatically
2.11 Upgrading or Downgrading MySQL
2.11.1 Upgrading MySQL
2.11.2 Downgrading MySQL
2.11.3 Checking Whether Tables or Indexes Must Be Rebuilt
2.11.4 Rebuilding or Repairing Tables or Indexes
2.11.5 Copying MySQL Databases to Another Machine
2.12 Environment Variables
2.13 Perl Installation Notes
2.13.1 Installing Perl on Unix
2.13.2 Installing ActiveState Perl on Windows
2.13.3 Problems Using the Perl DBI/DBD Interface
3 Tutorial
3.1 Connecting to and Disconnecting from the Server
3.2 Entering Queries
3.3 Creating and Using a Database
3.3.1 Creating and Selecting a Database
3.3.2 Creating a Table
3.3.3 Loading Data into a Table
3.3.4 Retrieving Information from a Table
3.4 Getting Information About Databases and Tables
3.5 Using mysql in Batch Mode
3.6 Examples of Common Queries
3.6.1 The Maximum Value for a Column
3.6.2 The Row Holding the Maximum of a Certain Column
3.6.3 Maximum of Column per Group
3.6.4 The Rows Holding the Group-wise Maximum of a Certain Column
3.6.5 Using User-Defined Variables
3.6.6 Using Foreign Keys
3.6.7 Searching on Two Keys
3.6.8 Calculating Visits Per Day
3.6.9 Using AUTO_INCREMENT
3.7 Using MySQL with Apache
4 MySQL Programs
4.1 Overview of MySQL Programs
4.2 Using MySQL Programs
4.2.1 Invoking MySQL Programs
4.2.2 Connecting to the MySQL Server
4.2.3 Specifying Program Options
4.2.4 Using Options on the Command Line
4.2.5 Program Option Modifiers
4.2.6 Using Option Files
4.2.7 Command-Line Options that Affect Option-File Handling
4.2.8 Using Options to Set Program Variables
4.2.9 Option Defaults, Options Expecting Values, and the = Sign
4.2.10 Setting Environment Variables
4.3 MySQL Server and Server-Startup Programs
4.3.1 mysqld — The MySQL Server
4.3.2 mysqld_safe — MySQL Server Startup Script
4.3.3 mysql.server — MySQL Server Startup Script
4.3.4 mysqld_multi — Manage Multiple MySQL Servers
4.4 MySQL Installation-Related Programs
4.4.1 comp_err — Compile MySQL Error Message File
4.4.2 mysql_install_db — Initialize MySQL Data Directory
4.4.3 mysql_plugin — Configure MySQL Server Plugins
4.4.4 mysql_secure_installation — Improve MySQL Installation Security
4.4.5 mysql_ssl_rsa_setup — Create SSL/RSA Files
4.4.6 mysql_tzinfo_to_sql — Load the Time Zone Tables
4.4.7 mysql_upgrade — Check and Upgrade MySQL Tables
4.5 MySQL Client Programs
4.5.1 mysql — The MySQL Command-Line Tool
4.5.2 mysqladmin — Client for Administering a MySQL Server
4.5.3 mysqlcheck — A Table Maintenance Program
4.5.4 mysqldump — A Database Backup Program
4.5.5 mysqlimport — A Data Import Program
4.5.6 mysqlpump — A Database Backup Program
4.5.7 mysqlshow — Display Database, Table, and Column Information
4.5.8 mysqlslap — Load Emulation Client
4.6 MySQL Administrative and Utility Programs
4.6.1 innochecksum — Offline InnoDB File Checksum Utility
4.6.2 myisam_ftdump — Display Full-Text Index information
4.6.3 myisamchk — MyISAM Table-Maintenance Utility
4.6.4 myisamlog — Display MyISAM Log File Contents
4.6.5 myisampack — Generate Compressed, Read-Only MyISAM Tables
4.6.6 mysql_config_editor — MySQL Configuration Utility
4.6.7 mysqlbinlog — Utility for Processing Binary Log Files
4.6.8 mysqldumpslow — Summarize Slow Query Log Files
4.7 MySQL Program Development Utilities
4.7.1 mysql_config — Display Options for Compiling Clients
4.7.2 my_print_defaults — Display Options from Option Files
4.7.3 resolve_stack_dump — Resolve Numeric Stack Trace Dump to Symbols
4.8 Miscellaneous Programs
4.8.1 lz4_decompress — Decompress mysqlpump LZ4-Compressed Output
4.8.2 perror — Explain Error Codes
4.8.3 replace — A String-Replacement Utility
4.8.4 resolveip — Resolve Host name to IP Address or Vice Versa
4.8.5 zlib_decompress — Decompress mysqlpump ZLIB-Compressed Output
5 MySQL Server Administration
5.1 The MySQL Server
5.1.1 Server Option and Variable Reference
5.1.2 Server Configuration Defaults
5.1.3 Server Command Options
5.1.4 Server System Variables
5.1.5 Using System Variables
5.1.6 Server Status Variables
5.1.7 Server SQL Modes
5.1.8 Server Plugins
5.1.9 IPv6 Support
5.1.10 Server-Side Help
5.1.11 Server Response to Signals
5.1.12 The Server Shutdown Process
5.2 MySQL Server Logs
5.2.1 Selecting General Query and Slow Query Log Output Destinations
5.2.2 The Error Log
5.2.3 The General Query Log
5.2.4 The Binary Log
5.2.5 The Slow Query Log
5.2.6 The DDL Log
5.2.7 Server Log Maintenance
5.3 Running Multiple MySQL Instances on One Machine
5.3.1 Setting Up Multiple Data Directories
5.3.2 Running Multiple MySQL Instances on Windows
5.3.3 Running Multiple MySQL Instances on Unix
5.3.4 Using Client Programs in a Multiple-Server Environment
5.4 Tracing mysqld Using DTrace
5.4.1 mysqld DTrace Probe Reference
6 Security
6.1 General Security Issues
6.1.1 Security Guidelines
6.1.2 Keeping Passwords Secure
6.1.3 Making MySQL Secure Against Attackers
6.1.4 Security-Related mysqld Options and Variables
6.1.5 How to Run MySQL as a Normal User
6.1.6 Security Issues with LOAD DATA LOCAL
6.1.7 Client Programming Security Guidelines
6.2 The MySQL Access Privilege System
6.2.1 Privileges Provided by MySQL
6.2.2 Privilege System Grant Tables
6.2.3 Specifying Account Names
6.2.4 Access Control, Stage 1: Connection Verification
6.2.5 Access Control, Stage 2: Request Verification
6.2.6 When Privilege Changes Take Effect
6.2.7 Troubleshooting Problems Connecting to MySQL
6.3 MySQL User Account Management
6.3.1 User Names and Passwords
6.3.2 Adding User Accounts
6.3.3 Removing User Accounts
6.3.4 Setting Account Resource Limits
6.3.5 Assigning Account Passwords
6.3.6 Password Expiration Policy
6.3.7 Password Expiration and Sandbox Mode
6.3.8 Pluggable Authentication
6.3.9 Proxy Users
6.3.10 User Account Locking
6.3.11 Using Secure Connections
6.3.12 Creating SSL and RSA Certificates and Keys
6.3.13 Connecting to MySQL Remotely from Windows with SSH
6.3.14 SQL-Based MySQL Account Activity Auditing
6.4 Security Plugins
6.4.1 Authentication Plugins
6.4.2 The Password Validation Plugin
6.4.3 The MySQL Keyring
6.4.4 MySQL Enterprise Audit Log Plugin
6.4.5 MySQL Enterprise Firewall
7 Backup and Recovery
7.1 Backup and Recovery Types
7.2 Database Backup Methods
7.3 Example Backup and Recovery Strategy
7.3.1 Establishing a Backup Policy
7.3.2 Using Backups for Recovery
7.3.3 Backup Strategy Summary
7.4 Using mysqldump for Backups
7.4.1 Dumping Data in SQL Format with mysqldump
7.4.2 Reloading SQL-Format Backups
7.4.3 Dumping Data in Delimited-Text Format with mysqldump
7.4.4 Reloading Delimited-Text Format Backups
7.4.5 mysqldump Tips
7.5 Point-in-Time (Incremental) Recovery Using the Binary Log
7.5.1 Point-in-Time Recovery Using Event Times
7.5.2 Point-in-Time Recovery Using Event Positions
7.6 MyISAM Table Maintenance and Crash Recovery
7.6.1 Using myisamchk for Crash Recovery
7.6.2 How to Check MyISAM Tables for Errors
7.6.3 How to Repair MyISAM Tables
7.6.4 MyISAM Table Optimization
7.6.5 Setting Up a MyISAM Table Maintenance Schedule
8 Optimization
8.1 Optimization Overview
8.2 Optimizing SQL Statements
8.2.1 Optimizing SELECT Statements
8.2.2 Optimizing DML Statements
8.2.3 Optimizing Database Privileges
8.2.4 Optimizing INFORMATION_SCHEMA Queries
8.2.5 Other Optimization Tips
8.3 Optimization and Indexes
8.3.1 How MySQL Uses Indexes
8.3.2 Using Primary Keys
8.3.3 Using Foreign Keys
8.3.4 Column Indexes
8.3.5 Multiple-Column Indexes
8.3.6 Verifying Index Usage
8.3.7 InnoDB and MyISAM Index Statistics Collection
8.3.8 Comparison of B-Tree and Hash Indexes
8.3.9 Optimizer Use of Generated Column Indexes
8.4 Optimizing Database Structure
8.4.1 Optimizing Data Size
8.4.2 Optimizing MySQL Data Types
8.4.3 Optimizing for Many Tables
8.4.4 Internal Temporary Table Use in MySQL
8.5 Optimizing for InnoDB Tables
8.5.1 Optimizing Storage Layout for InnoDB Tables
8.5.2 Optimizing InnoDB Transaction Management
8.5.3 Optimizing InnoDB Read-Only Transactions
8.5.4 Optimizing InnoDB Redo Logging
8.5.5 Bulk Data Loading for InnoDB Tables
8.5.6 Optimizing InnoDB Queries
8.5.7 Optimizing InnoDB DDL Operations
8.5.8 Optimizing InnoDB Disk I/O
8.5.9 Optimizing InnoDB Configuration Variables
8.5.10 Optimizing InnoDB for Systems with Many Tables
8.6 Optimizing for MyISAM Tables
8.6.1 Optimizing MyISAM Queries
8.6.2 Bulk Data Loading for MyISAM Tables
8.6.3 Speed of REPAIR TABLE Statements
8.7 Optimizing for MEMORY Tables
8.8 Understanding the Query Execution Plan
8.8.1 Optimizing Queries with EXPLAIN
8.8.2 EXPLAIN Output Format
8.8.3 EXPLAIN EXTENDED Output Format
8.8.4 Obtaining Execution Plan Information for a Named Connection
8.8.5 Estimating Query Performance
8.9 Controlling the Query Optimizer
8.9.1 Controlling Query Plan Evaluation
8.9.2 Controlling Switchable Optimizations
8.9.3 Optimizer Hints
8.9.4 Index Hints
8.9.5 The Optimizer Cost Model
8.10 Buffering and Caching
8.10.1 The InnoDB Buffer Pool
8.10.2 The MyISAM Key Cache
8.10.3 The MySQL Query Cache
8.10.4 Caching of Prepared Statements and Stored Programs
8.11 Optimizing Locking Operations
8.11.1 Internal Locking Methods
8.11.2 Table Locking Issues
8.11.3 Concurrent Inserts
8.11.4 Metadata Locking
8.11.5 External Locking
8.12 Optimizing the MySQL Server
8.12.1 System Factors and Startup Parameter Tuning
8.12.2 Tuning Server Parameters
8.12.3 Optimizing Disk I/O
8.12.4 Using Symbolic Links
8.12.5 Optimizing Memory Use
8.12.6 Optimizing Network Use
8.12.7 The Thread Pool Plugin
8.13 Measuring Performance (Benchmarking)
8.13.1 Measuring the Speed of Expressions and Functions
8.13.2 Using Your Own Benchmarks
8.13.3 Measuring Performance with performance_schema
8.14 Examining Thread Information
8.14.1 Thread Command Values
8.14.2 General Thread States
8.14.3 Query Cache Thread States
8.14.4 Replication Master Thread States
8.14.5 Replication Slave I/O Thread States
8.14.6 Replication Slave SQL Thread States
8.14.7 Replication Slave Connection Thread States
8.14.8 MySQL Cluster Thread States
8.14.9 Event Scheduler Thread States
9 Language Structure
9.1 Literal Values
9.1.1 String Literals
9.1.2 Number Literals
9.1.3 Date and Time Literals
9.1.4 Hexadecimal Literals
9.1.5 Boolean Literals
9.1.6 Bit-Field Literals
9.1.7 NULL Values
9.2 Schema Object Names
9.2.1 Identifier Qualifiers
9.2.2 Identifier Case Sensitivity
9.2.3 Mapping of Identifiers to File Names
9.2.4 Function Name Parsing and Resolution
9.3 Keywords and Reserved Words
9.4 User-Defined Variables
9.5 Expression Syntax
9.6 Comment Syntax
10 Globalization
10.1 Character Set Support
10.1.1 Character Sets and Collations in General
10.1.2 Character Sets and Collations in MySQL
10.1.3 Specifying Character Sets and Collations
10.1.4 Connection Character Sets and Collations
10.1.5 Configuring the Character Set and Collation for Applications
10.1.6 Character Set for Error Messages
10.1.7 Collation Issues
10.1.8 String Repertoire
10.1.9 Operations Affected by Character Set Support
10.1.10 Unicode Support
10.1.11 Upgrading from Previous to Current Unicode Support
10.1.12 UTF-8 for Metadata
10.1.13 Column Character Set Conversion
10.1.14 Character Sets and Collations That MySQL Supports
10.2 Setting the Error Message Language
10.3 Adding a Character Set
10.3.1 Character Definition Arrays
10.3.2 String Collating Support for Complex Character Sets
10.3.3 Multi-Byte Character Support for Complex Character Sets
10.4 Adding a Collation to a Character Set
10.4.1 Collation Implementation Types
10.4.2 Choosing a Collation ID
10.4.3 Adding a Simple Collation to an 8-Bit Character Set
10.4.4 Adding a UCA Collation to a Unicode Character Set
10.5 Character Set Configuration
10.6 MySQL Server Time Zone Support
10.6.1 Staying Current with Time Zone Changes
10.6.2 Time Zone Leap Second Support
10.7 MySQL Server Locale Support
11 Data Types
11.1 Data Type Overview
11.1.1 Numeric Type Overview
11.1.2 Date and Time Type Overview
11.1.3 String Type Overview
11.2 Numeric Types
11.2.1 Integer Types (Exact Value) - INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT
11.2.2 Fixed-Point Types (Exact Value) - DECIMAL, NUMERIC
11.2.3 Floating-Point Types (Approximate Value) - FLOAT, DOUBLE
11.2.4 Bit-Value Type - BIT
11.2.5 Numeric Type Attributes
11.2.6 Out-of-Range and Overflow Handling
11.3 Date and Time Types
11.3.1 The DATE, DATETIME, and TIMESTAMP Types
11.3.2 The TIME Type
11.3.3 The YEAR Type
11.3.4 YEAR(2) Limitations and Migrating to YEAR(4)
11.3.5 Automatic Initialization and Updating for TIMESTAMP and DATETIME
11.3.6 Fractional Seconds in Time Values
11.3.7 Conversion Between Date and Time Types
11.3.8 Two-Digit Years in Dates
11.4 String Types
11.4.1 The CHAR and VARCHAR Types
11.4.2 The BINARY and VARBINARY Types
11.4.3 The BLOB and TEXT Types
11.4.4 The ENUM Type
11.4.5 The SET Type
11.5 Extensions for Spatial Data
11.5.1 Spatial Data Types
11.5.2 The OpenGIS Geometry Model
11.5.3 Using Spatial Data
11.6 The JSON Data Type
11.7 Data Type Default Values
11.8 Data Type Storage Requirements
11.9 Choosing the Right Type for a Column
11.10 Using Data Types from Other Database Engines
12 Functions and Operators
12.1 Function and Operator Reference
12.2 Type Conversion in Expression Evaluation
12.3 Operators
12.3.1 Operator Precedence
12.3.2 Comparison Functions and Operators
12.3.3 Logical Operators
12.3.4 Assignment Operators
12.4 Control Flow Functions
12.5 String Functions
12.5.1 String Comparison Functions
12.5.2 Regular Expressions
12.6 Numeric Functions and Operators
12.6.1 Arithmetic Operators
12.6.2 Mathematical Functions
12.7 Date and Time Functions
12.8 What Calendar Is Used By MySQL?
12.9 Full-Text Search Functions
12.9.1 Natural Language Full-Text Searches
12.9.2 Boolean Full-Text Searches
12.9.3 Full-Text Searches with Query Expansion
12.9.4 Full-Text Stopwords
12.9.5 Full-Text Restrictions
12.9.6 Fine-Tuning MySQL Full-Text Search
12.9.7 Adding a Collation for Full-Text Indexing
12.9.8 ngram Full-Text Parser
12.9.9 MeCab Full-Text Parser Plugin
12.10 Cast Functions and Operators
12.11 XML Functions
12.12 Bit Functions and Operators
12.13 Encryption and Compression Functions
12.14 Information Functions
12.15 Spatial Analysis Functions
12.15.1 Spatial Function Reference
12.15.2 Argument Handling by Spatial Functions
12.15.3 Functions That Create Geometry Values from WKT Values
12.15.4 Functions That Create Geometry Values from WKB Values
12.15.5 MySQL-Specific Functions That Create Geometry Values
12.15.6 Geometry Format Conversion Functions
12.15.7 Geometry Property Functions
12.15.8 Spatial Operator Functions
12.15.9 Functions That Test Spatial Relations Between Geometry Objects
12.15.10 Spatial Geohash Functions
12.15.11 Spatial GeoJSON Functions
12.15.12 Spatial Convenience Functions
12.16 JSON Functions
12.16.1 JSON Function Reference
12.16.2 Functions That Create JSON Values
12.16.3 Functions That Search JSON Values
12.16.4 Functions That Modify JSON Values
12.16.5 Functions That Return JSON Value Attributes
12.16.6 JSON Path Syntax
12.17 Functions Used with Global Transaction IDs
12.18 MySQL Enterprise Encryption Functions
12.18.1 Enterprise Encryption Installation
12.18.2 Enterprise Encryption Usage and Examples
12.18.3 Enterprise Encryption Function Reference
12.18.4 Enterprise Encryption Function Descriptions
12.19 Miscellaneous Functions
12.20 GROUP BY (Aggregate) Functions
12.20.1 GROUP BY (Aggregate) Function Descriptions
12.20.2 GROUP BY Modifiers
12.20.3 MySQL Handling of GROUP BY
12.20.4 Detection of Functional Dependence
12.21 Precision Math
12.21.1 Types of Numeric Values
12.21.2 DECIMAL Data Type Characteristics
12.21.3 Expression Handling
12.21.4 Rounding Behavior
12.21.5 Precision Math Examples
13 SQL Statement Syntax
13.1 Data Definition Statements
13.1.1 ALTER DATABASE Syntax
13.1.2 ALTER EVENT Syntax
13.1.3 ALTER LOGFILE GROUP Syntax
13.1.4 ALTER FUNCTION Syntax
13.1.5 ALTER INSTANCE Syntax
13.1.6 ALTER PROCEDURE Syntax
13.1.7 ALTER SERVER Syntax
13.1.8 ALTER TABLE Syntax
13.1.9 ALTER TABLESPACE Syntax
13.1.10 ALTER VIEW Syntax
13.1.11 CREATE DATABASE Syntax
13.1.12 CREATE EVENT Syntax
13.1.13 CREATE FUNCTION Syntax
13.1.14 CREATE INDEX Syntax
13.1.15 CREATE LOGFILE GROUP Syntax
13.1.16 CREATE PROCEDURE and CREATE FUNCTION Syntax
13.1.17 CREATE SERVER Syntax
13.1.18 CREATE TABLE Syntax
13.1.19 CREATE TABLESPACE Syntax
13.1.20 CREATE TRIGGER Syntax
13.1.21 CREATE VIEW Syntax
13.1.22 DROP DATABASE Syntax
13.1.23 DROP EVENT Syntax
13.1.24 DROP FUNCTION Syntax
13.1.25 DROP INDEX Syntax
13.1.26 DROP LOGFILE GROUP Syntax
13.1.27 DROP PROCEDURE and DROP FUNCTION Syntax
13.1.28 DROP SERVER Syntax
13.1.29 DROP TABLE Syntax
13.1.30 DROP TABLESPACE Syntax
13.1.31 DROP TRIGGER Syntax
13.1.32 DROP VIEW Syntax
13.1.33 RENAME TABLE Syntax
13.1.34 TRUNCATE TABLE Syntax
13.2 Data Manipulation Statements
13.2.1 CALL Syntax
13.2.2 DELETE Syntax
13.2.3 DO Syntax
13.2.4 HANDLER Syntax
13.2.5 INSERT Syntax
13.2.6 LOAD DATA INFILE Syntax
13.2.7 LOAD XML Syntax
13.2.8 REPLACE Syntax
13.2.9 SELECT Syntax
13.2.10 Subquery Syntax
13.2.11 UPDATE Syntax
13.3 MySQL Transactional and Locking Statements
13.3.1 START TRANSACTION, COMMIT, and ROLLBACK Syntax
13.3.2 Statements That Cannot Be Rolled Back
13.3.3 Statements That Cause an Implicit Commit
13.3.4 SAVEPOINT, ROLLBACK TO SAVEPOINT, and RELEASE SAVEPOINT Syntax
13.3.5 LOCK TABLES and UNLOCK TABLES Syntax
13.3.6 SET TRANSACTION Syntax
13.3.7 XA Transactions
13.4 Replication Statements
13.4.1 SQL Statements for Controlling Master Servers
13.4.2 SQL Statements for Controlling Slave Servers
13.4.3 SQL Statements for Controlling Group Replication
13.5 SQL Syntax for Prepared Statements
13.5.1 PREPARE Syntax
13.5.2 EXECUTE Syntax
13.5.3 DEALLOCATE PREPARE Syntax
13.6 MySQL Compound-Statement Syntax
13.6.1 BEGIN ... END Compound-Statement Syntax
13.6.2 Statement Label Syntax
13.6.3 DECLARE Syntax
13.6.4 Variables in Stored Programs
13.6.5 Flow Control Statements
13.6.6 Cursors
13.6.7 Condition Handling
13.7 Database Administration Statements
13.7.1 Account Management Statements
13.7.2 Table Maintenance Statements
13.7.3 Plugin and User-Defined Function Statements
13.7.4 SET Syntax
13.7.5 SHOW Syntax
13.7.6 Other Administrative Statements
13.8 MySQL Utility Statements
13.8.1 DESCRIBE Syntax
13.8.2 EXPLAIN Syntax
13.8.3 HELP Syntax
13.8.4 USE Syntax
14 The InnoDB Storage Engine
14.1 Introduction to InnoDB
14.1.1 InnoDB as the Default MySQL Storage Engine
14.1.2 Checking InnoDB Availability
14.1.3 Turning Off InnoDB
14.2 InnoDB Concepts and Architecture
14.2.1 MySQL and the ACID Model
14.2.2 InnoDB Multi-Versioning
14.2.3 InnoDB Redo Log
14.2.4 InnoDB Undo Logs
14.2.5 InnoDB Temporary Table Undo Logs
14.2.6 InnoDB Table and Index Structures
14.2.7 InnoDB Mutex and Read/Write Lock Implementation
14.3 InnoDB Transaction Model and Locking
14.3.1 InnoDB Lock Modes
14.3.2 InnoDB Record, Gap, and Next-Key Locks
14.3.3 Avoiding the Phantom Problem Using Next-Key Locking
14.3.4 Consistent Nonlocking Reads
14.3.5 Locking Reads (SELECT ... FOR UPDATE and SELECT ... LOCK IN SHARE MODE)
14.3.6 Predicate Locking for Spatial Indexes
14.3.7 Locks Set by Different SQL Statements in InnoDB
14.3.8 Implicit Transaction Commit and Rollback
14.3.9 Deadlock Detection and Rollback
14.3.10 How to Cope with Deadlocks
14.4 InnoDB Configuration
14.4.1 InnoDB Initialization and Startup Configuration
14.4.2 Configuring InnoDB for Read-Only Operation
14.4.3 InnoDB Buffer Pool Configuration
14.4.4 Configuring the Memory Allocator for InnoDB
14.4.5 Configuring InnoDB Change Buffering
14.4.6 Configuring Thread Concurrency for InnoDB
14.4.7 Configuring the Number of Background InnoDB I/O Threads
14.4.8 Configuring the InnoDB Master Thread I/O Rate
14.4.9 Configuring Spin Lock Polling
14.4.10 Configuring InnoDB Purge Scheduling
14.4.11 Configuring Optimizer Statistics for InnoDB
14.4.12 Configuring the Merge Threshold for Index Pages
14.5 InnoDB Tablespace Management
14.5.1 Resizing the InnoDB System Tablespace
14.5.2 Changing the Number or Size of InnoDB Redo Log Files
14.5.3 Using Raw Disk Partitions for the System Tablespace
14.5.4 InnoDB File-Per-Table Tablespaces
14.5.5 Creating a File-Per-Table Tablespace Outside the Data Directory
14.5.6 Copying File-Per-Table Tablespaces to Another Server
14.5.7 Storing InnoDB Undo Logs in Separate Tablespaces
14.5.8 Truncating Undo Logs That Reside in Undo Tablespaces
14.5.9 InnoDB General Tablespaces
14.5.10 InnoDB Tablespace Encryption
14.6 InnoDB Table Management
14.6.1 Creating InnoDB Tables
14.6.2 Moving or Copying InnoDB Tables to Another Machine
14.6.3 Grouping DML Operations with Transactions
14.6.4 Converting Tables from MyISAM to InnoDB
14.6.5 AUTO_INCREMENT Handling in InnoDB
14.6.6 InnoDB and FOREIGN KEY Constraints
14.6.7 Limits on InnoDB Tables
14.7 InnoDB Table and Page Compression
14.7.1 InnoDB Table Compression
14.7.2 InnoDB Page Compression
14.8 InnoDB File-Format Management
14.8.1 Enabling File Formats
14.8.2 Verifying File Format Compatibility
14.8.3 Identifying the File Format in Use
14.8.4 Modifying the File Format
14.9 InnoDB Row Storage and Row Formats
14.9.1 Overview of InnoDB Row Storage
14.9.2 Specifying the Row Format for a Table
14.9.3 DYNAMIC and COMPRESSED Row Formats
14.9.4 COMPACT and REDUNDANT Row Formats
14.10 InnoDB Disk I/O and File Space Management
14.10.1 InnoDB Disk I/O
14.10.2 File Space Management
14.10.3 InnoDB Checkpoints
14.10.4 Defragmenting a Table
14.10.5 Reclaiming Disk Space with TRUNCATE TABLE
14.11 InnoDB and Online DDL
14.11.1 Overview of Online DDL
14.11.2 Performance and Concurrency Considerations for Online DDL
14.11.3 SQL Syntax for Online DDL
14.11.4 Combining or Separating DDL Statements
14.11.5 Examples of Online DDL
14.11.6 Implementation Details of Online DDL
14.11.7 How Crash Recovery Works with Online DDL
14.11.8 Online DDL for Partitioned InnoDB Tables
14.11.9 Limitations of Online DDL
14.12 InnoDB Startup Options and System Variables
14.13 InnoDB INFORMATION_SCHEMA Tables
14.13.1 InnoDB INFORMATION_SCHEMA Tables about Compression
14.13.2 InnoDB INFORMATION_SCHEMA Transaction and Locking Tables
14.13.3 InnoDB INFORMATION_SCHEMA System Tables
14.13.4 InnoDB INFORMATION_SCHEMA FULLTEXT Index Tables
14.13.5 InnoDB INFORMATION_SCHEMA Buffer Pool Tables
14.13.6 InnoDB INFORMATION_SCHEMA Metrics Table
14.13.7 InnoDB INFORMATION_SCHEMA Temporary Table Information Table
14.13.8 Retrieving InnoDB Tablespace Metadata from INFORMATION_SCHEMA.FILES
14.14 InnoDB Integration with MySQL Performance Schema
14.14.1 Monitoring ALTER TABLE Progress for InnoDB Tables Using Performance Schema
14.14.2 Monitoring InnoDB Mutex Waits Using Performance Schema
14.15 InnoDB Monitors
14.15.1 InnoDB Monitor Types
14.15.2 Enabling InnoDB Monitors
14.15.3 InnoDB Standard Monitor and Lock Monitor Output
14.15.4 InnoDB Tablespace Monitor Output
14.15.5 InnoDB Table Monitor Output
14.16 InnoDB Backup and Recovery
14.16.1 The InnoDB Recovery Process
14.16.2 Tablespace Discovery During Crash Recovery
14.17 InnoDB and MySQL Replication
14.18 InnoDB memcached Plugin
14.18.1 Benefits of the InnoDB memcached Plugin
14.18.2 InnoDB memcached Architecture
14.18.3 Setting Up the InnoDB memcached Plugin
14.18.4 Security Considerations for the InnoDB memcached Plugin
14.18.5 Writing Applications for the InnoDB memcached Plugin
14.18.6 The InnoDB memcached Plugin and Replication
14.18.7 InnoDB memcached Plugin Internals
14.18.8 Troubleshooting the InnoDB memcached Plugin
14.19 InnoDB Troubleshooting
14.19.1 Troubleshooting InnoDB I/O Problems
14.19.2 Forcing InnoDB Recovery
14.19.3 Troubleshooting InnoDB Data Dictionary Operations
14.19.4 InnoDB Error Handling
15 Alternative Storage Engines
15.1 Setting the Storage Engine
15.2 The MyISAM Storage Engine
15.2.1 MyISAM Startup Options
15.2.2 Space Needed for Keys
15.2.3 MyISAM Table Storage Formats
15.2.4 MyISAM Table Problems
15.3 The MEMORY Storage Engine
15.4 The CSV Storage Engine
15.4.1 Repairing and Checking CSV Tables
15.4.2 CSV Limitations
15.5 The ARCHIVE Storage Engine
15.6 The BLACKHOLE Storage Engine
15.7 The MERGE Storage Engine
15.7.1 MERGE Table Advantages and Disadvantages
15.7.2 MERGE Table Problems
15.8 The FEDERATED Storage Engine
15.8.1 FEDERATED Storage Engine Overview
15.8.2 How to Create FEDERATED Tables
15.8.3 FEDERATED Storage Engine Notes and Tips
15.8.4 FEDERATED Storage Engine Resources
15.9 The EXAMPLE Storage Engine
15.10 Other Storage Engines
15.11 Overview of MySQL Storage Engine Architecture
15.11.1 Pluggable Storage Engine Architecture
15.11.2 The Common Database Server Layer
16 High Availability and Scalability
16.1 Using MySQL within an Amazon EC2 Instance
16.1.1 Setting Up MySQL on an EC2 AMI
16.1.2 EC2 Instance Limitations
16.1.3 Deploying a MySQL Database Using EC2
16.2 Using ZFS Replication
16.2.1 Using ZFS for File System Replication
16.2.2 Configuring MySQL for ZFS Replication
16.2.3 Handling MySQL Recovery with ZFS
16.3 Using MySQL with memcached
16.3.1 Installing memcached
16.3.2 Using memcached
16.3.3 Developing a memcached Application
16.3.4 Getting memcached Statistics
16.3.5 memcached FAQ
17 Replication
17.1 Configuring Replication
17.1.1 Binary Log File Position Based Replication Configuration Overview
17.1.2 Setting Up Binary Log File Position Based Replication
17.1.3 Replication with Global Transaction Identifiers
17.1.4 MySQL Multi-Source Replication
17.1.5 Changing Replication Modes on Online Servers
17.1.6 Replication and Binary Logging Options and Variables
17.1.7 Common Replication Administration Tasks
17.2 Replication Implementation
17.2.1 Replication Formats
17.2.2 Replication Implementation Details
17.2.3 Replication Channels
17.2.4 Replication Relay and Status Logs
17.2.5 How Servers Evaluate Replication Filtering Rules
17.3 Replication Solutions
17.3.1 Using Replication for Backups
17.3.2 Using Replication with Different Master and Slave Storage Engines
17.3.3 Using Replication for Scale-Out
17.3.4 Replicating Different Databases to Different Slaves
17.3.5 Improving Replication Performance
17.3.6 Switching Masters During Failover
17.3.7 Setting Up Replication to Use Secure Connections
17.3.8 Semisynchronous Replication
17.3.9 Delayed Replication
17.4 Replication Notes and Tips
17.4.1 Replication Features and Issues
17.4.2 Replication Compatibility Between MySQL Versions
17.4.3 Upgrading a Replication Setup
17.4.4 Troubleshooting Replication
17.4.5 How to Report Replication Bugs or Problems
18 MySQL Cluster NDB 7.5
18.1 MySQL Cluster Overview
18.1.1 MySQL Cluster Core Concepts
18.1.2 MySQL Cluster Nodes, Node Groups, Replicas, and Partitions
18.1.3 MySQL Cluster Hardware, Software, and Networking Requirements
18.1.4 What is New in MySQL Cluster NDB 7.5
18.1.5 MySQL Server Using InnoDB Compared with MySQL Cluster
18.1.6 Known Limitations of MySQL Cluster
18.2 MySQL Cluster Installation
18.2.1 The MySQL Cluster Auto-Installer
18.2.2 Installation of MySQL Cluster on Linux
18.2.3 Installing MySQL Cluster on Windows
18.2.4 Initial Configuration of MySQL Cluster
18.2.5 Initial Startup of MySQL Cluster
18.2.6 MySQL Cluster Example with Tables and Data
18.2.7 Safe Shutdown and Restart of MySQL Cluster
18.2.8 Upgrading and Downgrading MySQL Cluster
18.3 Configuration of MySQL Cluster
18.3.1 Quick Test Setup of MySQL Cluster
18.3.2 Overview of MySQL Cluster Configuration Parameters, Options, and Variables
18.3.3 MySQL Cluster Configuration Files
18.3.4 Using High-Speed Interconnects with MySQL Cluster
18.4 MySQL Cluster Programs
18.4.1 ndbd — The MySQL Cluster Data Node Daemon
18.4.2 ndbinfo_select_all — Select From ndbinfo Tables
18.4.3 ndbmtd — The MySQL Cluster Data Node Daemon (Multi-Threaded)
18.4.4 ndb_mgmd — The MySQL Cluster Management Server Daemon
18.4.5 ndb_mgm — The MySQL Cluster Management Client
18.4.6 ndb_blob_tool — Check and Repair BLOB and TEXT columns of MySQL Cluster Tables
18.4.7 ndb_config — Extract MySQL Cluster Configuration Information
18.4.8 ndb_cpcd — Automate Testing for NDB Development
18.4.9 ndb_delete_all — Delete All Rows from an NDB Table
18.4.10 ndb_desc — Describe NDB Tables
18.4.11 ndb_drop_index — Drop Index from an NDB Table
18.4.12 ndb_drop_table — Drop an NDB Table
18.4.13 ndb_error_reporter — NDB Error-Reporting Utility
18.4.14 ndb_index_stat — NDB Index Statistics Utility
18.4.15 ndb_print_backup_file — Print NDB Backup File Contents
18.4.16 ndb_print_file — Print NDB Disk Data File Contents
18.4.17 ndb_print_schema_file — Print NDB Schema File Contents
18.4.18 ndb_print_sys_file — Print NDB System File Contents
18.4.19 ndbd_redo_log_reader — Check and Print Content of Cluster Redo Log
18.4.20 ndb_restore — Restore a MySQL Cluster Backup
18.4.21 ndb_select_all — Print Rows from an NDB Table
18.4.22 ndb_select_count — Print Row Counts for NDB Tables
18.4.23 ndb_setup.py — Start browser-based Auto-Installer for MySQL Cluster
18.4.24 ndb_show_tables — Display List of NDB Tables
18.4.25 ndb_size.pl — NDBCLUSTER Size Requirement Estimator
18.4.26 ndb_waiter — Wait for MySQL Cluster to Reach a Given Status
18.4.27 Options Common to MySQL Cluster Programs — Options Common to MySQL Cluster Programs
18.5 Management of MySQL Cluster
18.5.1 Summary of MySQL Cluster Start Phases
18.5.2 Commands in the MySQL Cluster Management Client
18.5.3 Online Backup of MySQL Cluster
18.5.4 MySQL Server Usage for MySQL Cluster
18.5.5 Performing a Rolling Restart of a MySQL Cluster
18.5.6 Event Reports Generated in MySQL Cluster
18.5.7 MySQL Cluster Log Messages
18.5.8 MySQL Cluster Single User Mode
18.5.9 Quick Reference: MySQL Cluster SQL Statements
18.5.10 The ndbinfo MySQL Cluster Information Database
18.5.11 INFORMATION_SCHEMA Tables for MySQL Cluster
18.5.12 MySQL Cluster Security Issues
18.5.13 MySQL Cluster Disk Data Tables
18.5.14 Adding MySQL Cluster Data Nodes Online
18.5.15 Distributed MySQL Privileges for MySQL Cluster
18.5.16 NDB API Statistics Counters and Variables
18.6 MySQL Cluster Replication
18.6.1 MySQL Cluster Replication: Abbreviations and Symbols
18.6.2 General Requirements for MySQL Cluster Replication
18.6.3 Known Issues in MySQL Cluster Replication
18.6.4 MySQL Cluster Replication Schema and Tables
18.6.5 Preparing the MySQL Cluster for Replication
18.6.6 Starting MySQL Cluster Replication (Single Replication Channel)
18.6.7 Using Two Replication Channels for MySQL Cluster Replication
18.6.8 Implementing Failover with MySQL Cluster Replication
18.6.9 MySQL Cluster Backups With MySQL Cluster Replication
18.6.10 MySQL Cluster Replication: Multi-Master and Circular Replication
18.6.11 MySQL Cluster Replication Conflict Resolution
18.7 MySQL Cluster Release Notes
19 Partitioning
19.1 Overview of Partitioning in MySQL
19.2 Partitioning Types
19.2.1 RANGE Partitioning
19.2.2 LIST Partitioning
19.2.3 COLUMNS Partitioning
19.2.4 HASH Partitioning
19.2.5 KEY Partitioning
19.2.6 Subpartitioning
19.2.7 How MySQL Partitioning Handles NULL
19.3 Partition Management
19.3.1 Management of RANGE and LIST Partitions
19.3.2 Management of HASH and KEY Partitions
19.3.3 Exchanging Partitions and Subpartitions with Tables
19.3.4 Maintenance of Partitions
19.3.5 Obtaining Information About Partitions
19.4 Partition Pruning
19.5 Partition Selection
19.6 Restrictions and Limitations on Partitioning
19.6.1 Partitioning Keys, Primary Keys, and Unique Keys
19.6.2 Partitioning Limitations Relating to Storage Engines
19.6.3 Partitioning Limitations Relating to Functions
19.6.4 Partitioning and Locking
20 Stored Programs and Views
20.1 Defining Stored Programs
20.2 Using Stored Routines (Procedures and Functions)
20.2.1 Stored Routine Syntax
20.2.2 Stored Routines and MySQL Privileges
20.2.3 Stored Routine Metadata
20.2.4 Stored Procedures, Functions, Triggers, and LAST_INSERT_ID()
20.3 Using Triggers
20.3.1 Trigger Syntax and Examples
20.3.2 Trigger Metadata
20.4 Using the Event Scheduler
20.4.1 Event Scheduler Overview
20.4.2 Event Scheduler Configuration
20.4.3 Event Syntax
20.4.4 Event Metadata
20.4.5 Event Scheduler Status
20.4.6 The Event Scheduler and MySQL Privileges
20.5 Using Views
20.5.1 View Syntax
20.5.2 View Processing Algorithms
20.5.3 Updatable and Insertable Views
20.5.4 The View WITH CHECK OPTION Clause
20.5.5 View Metadata
20.6 Access Control for Stored Programs and Views
20.7 Binary Logging of Stored Programs
21 INFORMATION_SCHEMA Tables
21.1 The INFORMATION_SCHEMA CHARACTER_SETS Table
21.2 The INFORMATION_SCHEMA COLLATIONS Table
21.3 The INFORMATION_SCHEMA COLLATION_CHARACTER_SET_APPLICABILITY Table
21.4 The INFORMATION_SCHEMA COLUMNS Table
21.5 The INFORMATION_SCHEMA COLUMN_PRIVILEGES Table
21.6 The INFORMATION_SCHEMA ENGINES Table
21.7 The INFORMATION_SCHEMA EVENTS Table
21.8 The INFORMATION_SCHEMA FILES Table
21.9 The INFORMATION_SCHEMA GLOBAL_STATUS and SESSION_STATUS Tables
21.10 The INFORMATION_SCHEMA GLOBAL_VARIABLES and SESSION_VARIABLES Tables
21.11 The INFORMATION_SCHEMA KEY_COLUMN_USAGE Table
21.12 The INFORMATION_SCHEMA ndb_transid_mysql_connection_map Table
21.13 The INFORMATION_SCHEMA OPTIMIZER_TRACE Table
21.14 The INFORMATION_SCHEMA PARAMETERS Table
21.15 The INFORMATION_SCHEMA PARTITIONS Table
21.16 The INFORMATION_SCHEMA PLUGINS Table
21.17 The INFORMATION_SCHEMA PROCESSLIST Table
21.18 The INFORMATION_SCHEMA PROFILING Table
21.19 The INFORMATION_SCHEMA REFERENTIAL_CONSTRAINTS Table
21.20 The INFORMATION_SCHEMA ROUTINES Table
21.21 The INFORMATION_SCHEMA SCHEMATA Table
21.22 The INFORMATION_SCHEMA SCHEMA_PRIVILEGES Table
21.23 The INFORMATION_SCHEMA STATISTICS Table
21.24 The INFORMATION_SCHEMA TABLES Table
21.25 The INFORMATION_SCHEMA TABLESPACES Table
21.26 The INFORMATION_SCHEMA TABLE_CONSTRAINTS Table
21.27 The INFORMATION_SCHEMA TABLE_PRIVILEGES Table
21.28 The INFORMATION_SCHEMA TRIGGERS Table
21.29 The INFORMATION_SCHEMA USER_PRIVILEGES Table
21.30 The INFORMATION_SCHEMA VIEWS Table
21.31 INFORMATION_SCHEMA Tables for InnoDB
21.31.1 The INFORMATION_SCHEMA INNODB_CMP and INNODB_CMP_RESET Tables
21.31.2 The INFORMATION_SCHEMA INNODB_CMP_PER_INDEX and INNODB_CMP_PER_INDEX_RESET Tables
21.31.3 The INFORMATION_SCHEMA INNODB_CMPMEM and INNODB_CMPMEM_RESET Tables
21.31.4 The INFORMATION_SCHEMA INNODB_TRX Table
21.31.5 The INFORMATION_SCHEMA INNODB_LOCKS Table
21.31.6 The INFORMATION_SCHEMA INNODB_LOCK_WAITS Table
21.31.7 The INFORMATION_SCHEMA INNODB_SYS_TABLES Table
21.31.8 The INFORMATION_SCHEMA INNODB_SYS_INDEXES Table
21.31.9 The INFORMATION_SCHEMA INNODB_SYS_COLUMNS Table
21.31.10 The INFORMATION_SCHEMA INNODB_SYS_FIELDS Table
21.31.11 The INFORMATION_SCHEMA INNODB_SYS_FOREIGN Table
21.31.12 The INFORMATION_SCHEMA INNODB_SYS_FOREIGN_COLS Table
21.31.13 The INFORMATION_SCHEMA INNODB_SYS_TABLESTATS View
21.31.14 The INFORMATION_SCHEMA INNODB_SYS_DATAFILES Table
21.31.15 The INFORMATION_SCHEMA INNODB_SYS_TABLESPACES Table
21.31.16 The INFORMATION_SCHEMA INNODB_SYS_VIRTUAL Table
21.31.17 The INFORMATION_SCHEMA INNODB_BUFFER_PAGE Table
21.31.18 The INFORMATION_SCHEMA INNODB_BUFFER_PAGE_LRU Table
21.31.19 The INFORMATION_SCHEMA INNODB_BUFFER_POOL_STATS Table
21.31.20 The INFORMATION_SCHEMA INNODB_METRICS Table
21.31.21 The INFORMATION_SCHEMA INNODB_FT_CONFIG Table
21.31.22 The INFORMATION_SCHEMA INNODB_FT_DEFAULT_STOPWORD Table
21.31.23 The INFORMATION_SCHEMA INNODB_FT_INDEX_TABLE Table
21.31.24 The INFORMATION_SCHEMA INNODB_FT_INDEX_CACHE Table
21.31.25 The INFORMATION_SCHEMA INNODB_FT_DELETED Table
21.31.26 The INFORMATION_SCHEMA INNODB_FT_BEING_DELETED Table
21.31.27 The INFORMATION_SCHEMA INNODB_TEMP_TABLE_INFO Table
21.32 Extensions to SHOW Statements
22 MySQL Performance Schema
22.1 Performance Schema Quick Start
22.2 Performance Schema Configuration
22.2.1 Performance Schema Build Configuration
22.2.2 Performance Schema Startup Configuration
22.2.3 Performance Schema Runtime Configuration
22.3 Performance Schema Queries
22.4 Performance Schema Instrument Naming Conventions
22.5 Performance Schema Status Monitoring
22.6 Performance Schema Atom and Molecule Events
22.7 Performance Schema Statement Digests
22.8 Performance Schema General Table Characteristics
22.9 Performance Schema Table Descriptions
22.9.1 Performance Schema Table Index
22.9.2 Performance Schema Setup Tables
22.9.3 Performance Schema Instance Tables
22.9.4 Performance Schema Wait Event Tables
22.9.5 Performance Schema Stage Event Tables
22.9.6 Performance Schema Statement Event Tables
22.9.7 Performance Schema Transaction Tables
22.9.8 Performance Schema Connection Tables
22.9.9 Performance Schema Connection Attribute Tables
22.9.10 Performance Schema Replication Tables
22.9.11 Performance Schema Lock Tables
22.9.12 Performance Schema System Variable Tables
22.9.13 Performance Schema Status Variable Tables
22.9.14 Performance Schema Summary Tables
22.9.15 Performance Schema Miscellaneous Tables
22.10 Performance Schema Option and Variable Reference
22.11 Performance Schema Command Options
22.12 Performance Schema System Variables
22.13 Performance Schema Status Variables
22.14 The Performance Schema Memory-Allocation Model
22.15 Performance Schema and Plugins
22.16 Using the Performance Schema to Diagnose Problems
22.16.1 Query Profiling Using Performance Schema
22.17 Migrating to Performance Schema System and Status Variable Tables
23 MySQL sys Schema
23.1 Prerequisites for Using the sys Schema
23.2 Using the sys Schema
23.3 sys Schema Progress Reporting
23.4 sys Schema Object Reference
23.4.1 sys Schema Object Index
23.4.2 sys Schema Tables and Triggers
23.4.3 sys Schema Views
23.4.4 sys Schema Stored Procedures
23.4.5 sys Schema Stored Functions
24 Connectors and APIs
24.1 MySQL Connector/ODBC
24.2 MySQL Connector/Net
24.3 MySQL Connector/J
24.4 MySQL Connector/C++
24.5 MySQL Connector/C
24.6 MySQL Connector/Python
24.7 libmysqld, the Embedded MySQL Server Library
24.7.1 Compiling Programs with libmysqld
24.7.2 Restrictions When Using the Embedded MySQL Server
24.7.3 Options with the Embedded Server
24.7.4 Embedded Server Examples
24.8 MySQL C API
24.8.1 MySQL C API Implementations
24.8.2 Simultaneous MySQL Server and Connector/C Installations
24.8.3 Example C API Client Programs
24.8.4 Building and Running C API Client Programs
24.8.5 C API Data Structures
24.8.6 C API Function Overview
24.8.7 C API Function Descriptions
24.8.8 C API Prepared Statements
24.8.9 C API Prepared Statement Data Structures
24.8.10 C API Prepared Statement Function Overview
24.8.11 C API Prepared Statement Function Descriptions
24.8.12 C API Threaded Function Descriptions
24.8.13 C API Embedded Server Function Descriptions
24.8.14 C API Client Plugin Functions
24.8.15 Common Questions and Problems When Using the C API
24.8.16 Controlling Automatic Reconnection Behavior
24.8.17 C API Support for Multiple Statement Execution
24.8.18 C API Prepared Statement Problems
24.8.19 C API Prepared Statement Handling of Date and Time Values
24.8.20 C API Support for Prepared CALL Statements
24.9 MySQL PHP API
24.10 MySQL Perl API
24.11 MySQL Python API
24.12 MySQL Ruby APIs
24.12.1 The MySQL/Ruby API
24.12.2 The Ruby/MySQL API
24.13 MySQL Tcl API
24.14 MySQL Eiffel Wrapper
25 Extending MySQL
25.1 MySQL Internals
25.1.1 MySQL Threads
25.1.2 The MySQL Test Suite
25.2 The MySQL Plugin API
25.2.1 Types of Plugins
25.2.2 Plugin API Characteristics
25.2.3 Plugin API Components
25.2.4 Writing Plugins
25.3 MySQL Services for Plugins
25.3.1 The Locking Service
25.4 Adding New Functions to MySQL
25.4.1 Features of the User-Defined Function Interface
25.4.2 Adding a New User-Defined Function
25.4.3 Adding a New Native Function
25.5 Debugging and Porting MySQL
25.5.1 Debugging a MySQL Server
25.5.2 Debugging a MySQL Client
25.5.3 The DBUG Package
26 MySQL Enterprise Edition
26.1 MySQL Enterprise Monitor Overview
26.2 MySQL Enterprise Backup Overview
26.3 MySQL Enterprise Security Overview
26.4 MySQL Enterprise Encryption Overview
26.5 MySQL Enterprise Audit Overview
26.6 MySQL Enterprise Firewall Overview
26.7 MySQL Enterprise Thread Pool Overview
27 MySQL Workbench
A MySQL 5.7 Frequently Asked Questions
A.1 MySQL 5.7 FAQ: General
A.2 MySQL 5.7 FAQ: Storage Engines
A.3 MySQL 5.7 FAQ: Server SQL Mode
A.4 MySQL 5.7 FAQ: Stored Procedures and Functions
A.5 MySQL 5.7 FAQ: Triggers
A.6 MySQL 5.7 FAQ: Views
A.7 MySQL 5.7 FAQ: INFORMATION_SCHEMA
A.8 MySQL 5.7 FAQ: Migration
A.9 MySQL 5.7 FAQ: Security
A.10 MySQL 5.7 FAQ: MySQL Cluster
A.11 MySQL 5.7 FAQ: MySQL Chinese, Japanese, and Korean Character Sets
A.12 MySQL 5.7 FAQ: Connectors & APIs
A.13 MySQL 5.7 FAQ: Replication
A.14 MySQL 5.7 FAQ: MySQL Enterprise Thread Pool
B Errors, Error Codes, and Common Problems
B.1 Sources of Error Information
B.2 Types of Error Values
B.3 Server Error Codes and Messages
B.4 Client Error Codes and Messages
B.5 Problems and Common Errors
B.5.1 How to Determine What Is Causing a Problem
B.5.2 Common Errors When Using MySQL Programs
B.5.3 Administration-Related Issues
B.5.4 Query-Related Issues
B.5.5 Optimizer-Related Issues
B.5.6 Table Definition-Related Issues
B.5.7 Known Issues in MySQL
C Restrictions and Limits
C.1 Restrictions on Stored Programs
C.2 Restrictions on Condition Handling
C.3 Restrictions on Server-Side Cursors
C.4 Restrictions on Subqueries
C.5 Restrictions on Views
C.6 Restrictions on XA Transactions
C.7 Restrictions on Character Sets
C.8 Restrictions on Performance Schema
C.9 Restrictions on Pluggable Authentication
C.10 Limits in MySQL
C.10.1 Limits on Joins
C.10.2 Limits on Number of Databases and Tables
C.10.3 Limits on Table Size
C.10.4 Limits on Table Column Count and Row Size
C.10.5 Limits Imposed by .frm File Structure
C.10.6 Windows Platform Limitations
MySQL Glossary
General Index
C Function Index
Command Index
Function Index
INFORMATION_SCHEMA Index
Join Types Index
Operator Index
Option Index
Privileges Index
SQL Modes Index
Statement/Syntax Index
Status Variable Index
System Variable Index
Transaction Isolation Level Index