List:Internals« Previous MessageNext Message »
From:Rick James Date:October 2 2009 5:32pm
Subject:RE: is MySQL query execution single threaded?
View as plain text  
Assuming you are asking if a SELECT is split up so that multiple CPUs
can participate in the operation, I don't believe any of these do such.
MyISAM, InnoDB, InfoBright, Partition, Federated (client), and Merge (at
least) fail to do such as of 5.1.

InnoDB uses I/O threads that are separate from the single SQL thread.
These are shared resources.

Separate SELECTs do use separate threads, but they stumble over each
other due to inefficiencies in
* Malloc in InnoDB
* premature locking of the Query Cache (unless it is fully OFF)
* key_buffer locking
Various 5.1 benchmarks show that these problems cause a decline in
system throughput after about 4-8 cores.  The problems are addressed to
various degrees in the "Google patch", the "Percona patch" (derived from
Google), and 5.4.

[Please correct any misrepresentations I have made.]
 
Rick James
MySQL Geeks - Consulting & Review

 

> -----Original Message-----
> From: Hartmut.Holzgraefe@stripped [mailto:Hartmut.Holzgraefe@stripped] 
> Sent: Monday, September 28, 2009 5:44 AM
> To: Zardosht Kasheff
> Cc: Konstantin Osipov; internals@stripped
> Subject: Re: is MySQL query execution single threaded?
> 
> Konstantin Osipov wrote:
> 
> > Currently one SQL statement runs from start to end in the same 
> > physical thread.
> 
> unless you query ndbcluster or federated tables, in this case
> part of the work is handed of to external processes and in the
> case of cluster several data nodes may process the low level
> storage engine API requests in parallel, each working on its
> active partition(s) of the data ...
> 
> But for the actual mysqld process it is true that all work it
> does on a certain query itself is performed by the same single
> thread.
> 
> -- 
> Hartmut Holzgraefe, MySQL Regional Support Manager, EMEA
> 
> Sun Microsystems GmbH, Sonnenallee 1, 85551 Kirchheim-Heimstetten
> Amtsgericht Muenchen: HRB161028
> Geschaeftsfuehrer: Thomas Schroeder, Wolfgang Engels, Wolf Frenkel
> Vorsitzender des Aufsichtsrates: Martin Haering
> 
> -- 
> MySQL Internals Mailing List
> For list archives: http://lists.mysql.com/internals
> To unsubscribe:    
> http://lists.mysql.com/internals?unsub=1
> 
> 
Thread
is MySQL query execution single threaded?Zardosht Kasheff25 Sep
  • Re: is MySQL query execution single threaded?Konstantin Osipov25 Sep
    • Re: is MySQL query execution single threaded?Hartmut Holzgraefe28 Sep
      • RE: is MySQL query execution single threaded?Rick James2 Oct
      • RE: is MySQL query execution single threaded?Rick James7 Dec