Configuring the Number of Background InnoDB I/O Threads The default value for  innodb_thread_concurrency  and the implied default limit on the number of concurrent threads has been changed in various releases of MySQL and  InnoDB . The default value of innodb_thread_concurrency  is  0 , so that by default there is no limit on the number of concurrently executing threads. InnoDB  causes threads to sleep only when the number of concurrent threads is limited. When there is no limit on the number of threads, all contend equally to be scheduled. That is, if innodb_thread_concurrency  is  0 , the value of  innodb_thread_sleep_delay  is ignored. When there is a limit on the number of threads (when  innodb_thread_concurrency  is > 0),  InnoDB reduces context switching overhead by permitting multiple requests made during the execution of a  single SQL statement  to enter  InnoDB  without observing the limit set by  innodb_thread_concurrency . Since an SQL statement (such as a join) may comprise multiple row operations within  InnoDB ,  InnoDB  assigns a specified number of “tickets”  that allow a thread to be scheduled repeatedly with minimal overhead. When a new SQL statement starts, a thread has no tickets, and it must observe innodb_thread_concurrency . Once the thread is entitled to enter  InnoDB , it is assigned a number of tickets that it can use for subsequently entering  InnoDB  to perform row operations. If the tickets run out, the thread is evicted, and  innodb_thread_concurrency  is observed again which may place the thread back into the first-in/first-out queue of waiting threads. When the thread is once again entitled to enter  InnoDB , tickets are assigned again. The number of tickets assigned is specified by the global option innodb_concurrency_tickets , which is 5000 by default. A thread that is waiting for a lock is given one ticket once the lock becomes available. The correct values of these variables depend on your environment and workload. Try a range of different values to determine what value works for your applications. Before limiting the number of concurrently executing threads, review configuration options that may improve the performance of  InnoDB  on multi-core and multi-processor computers, such as  innodb_adaptive_hash_index . For general performance information about MySQL thread handling, see Section 5.1.12.1, “Connection Interfaces” . InnoDB  uses background threads to service various types of I/O requests. You can configure the number of background threads that service read and write I/O on data pages using the innodb_read_io_threads  and  innodb_write_io_threads  configuration parameters. These parameters signify the number of background threads used for read and write requests, respectively. They are effective on all supported platforms. You can set values for these parameters in the MySQL option file ( my.cnf  or  my.ini ); you cannot change values dynamically. The default value for these parameters is  4 and permissible values range from  1-64 . The purpose of these configuration options to make  InnoDB  more scalable on high end systems. Each background thread can handle up to 256 pending I/O requests. A major source of background I/O is read-ahead requests.  InnoDB  tries to balance the load of incoming requests in such way that most background threads share work equally.  InnoDB  also attempts to allocate read requests from the same extent to the same thread, to increase the chances of coalescing the requests. If you have a high end I/O subsystem and you see more than 64 ×  innodb_read_io_threads  pending read requests in SHOW ENGINE INNODB STATUS  output, you might improve performance by increasing the value of innodb_read_io_threads . On Linux systems,  InnoDB  uses the asynchronous I/O subsystem by default to perform read-ahead and write requests for data file pages, which changes the way that  InnoDB  background threads service these types of I/O requests. For more information, see Section 15.8.6, “Using Asynchronous I/O on Linux” . For more information about  InnoDB  I/O performance, see Section 8.5.8, “Optimizing InnoDB Disk I/O” . 3125 15.8.5 Configuring the Number of Background InnoDB I/O Threads