MySQL 5.0 Reference Manual  /  ...  /  MySQL Cluster Developement in MySQL 5.0 MySQL Cluster Developement in MySQL 5.0

MySQL Cluster in MySQL 5.0 contains a number of features added since MySQL 4.1 that are likely to be of interest:

  • Condition pushdown. Consider the following query:

    SELECT * FROM t1 WHERE non_indexed_attribute = 1;

    This query uses a full table scan and the condition is evaluated in the cluster's data nodes. Thus, it is not necessary to send the records across the network for evaluation. (That is, function transport is used, rather than data transport.) Please note that this feature is currently disabled by default (pending more thorough testing), but it should work in most cases. This feature can be enabled through the use of the SET engine_condition_pushdown = On statement. Alternatively, you can run mysqld with the this feature enabled by starting the MySQL server with the --engine-condition-pushdown option.

    A major benefit of this change is that queries can be executed in parallel. This means that queries against nonindexed columns can run faster than previously by a factor of as much as 5 to 10 times, times the number of data nodes, because multiple CPUs can work on the query in parallel.

    You can use EXPLAIN to determine when condition pushdown is being used. See Section 13.8.2, “EXPLAIN Syntax”.

  • Decreased IndexMemory Usage: In MySQL 5.0, each record consumes approximately 25 bytes of index memory, and every unique index uses 25 bytes per record of index memory (in addition to some data memory because these are stored in a separate table). This is because the primary key is not stored in the index memory anymore.

  • Query Cache Enabled for MySQL Cluster: See Section 8.10.3, “The MySQL Query Cache”, for information on configuring and using the query cache.

  • New optimizations. One optimization that merits particular attention is that a batched read interface is now used in some queries. For example, consider the following query:

    SELECT * FROM t1 WHERE primary_key IN (1,2,3,4,5,6,7,8,9,10);

    This query will be executed 2 to 3 times more quickly than in previous MySQL Cluster versions due to the fact that all 10 key lookups are sent in a single batch rather than one at a time.

  • Limit On Number of Metadata Objects: Beginning with MySQL 5.0.6, each Cluster database may contain a maximum of 20320 metadata objects—this includes database tables, system tables, indexes and BLOB values. (Previously, this number was 1600.)

User Comments
Sign Up Login You must be logged in to post a comment.