MySQL Forums
Forum List  »  NDB clusters

Re: Slow query in cluster but not outside
Posted by: Alex Llera
Date: September 28, 2006 06:56AM

Stewart Smith Wrote:
-------------------------------------------------------
> what's the EXPLAIN output on the queries?

mysql> explain select SQL_CALC_FOUND_ROWS `Content`.`contentId`,`Content`.`MembershipID`,`Content`.`SourceGroup`,`Content`.`TypeID`,`Content`.`CategoryID`,`Content`.`Name`,`Content`.`Location`,`Content`.`Filesize`,`Content`.`OrigCRC`,`Content`.`Description`,`Content`.`ESRB`,`Content`.`Thumbnail`,`Content`.`Private`,`Content`.`Default`,`Content`.`Uploaded`,`Content`.`Progress`,`Content`.`Views`,`Content`.`MetterID`,`Content`.`Active`,`Content`.`TimeUpdated`,`Content`.`TimeCreated`, `Users`.`FirstName` as Author from `Content` INNER JOIN `Memberships` ON ( `Content`.`MembershipID` = `Memberships`.`MembershipID` AND `Memberships`.`SourceID` = '42' ) INNER JOIN `Users` ON ( `Memberships`.`UserID` = `Users`.`UserID` ) where `Content`.`TypeID` = '8' AND`Content`.`Uploaded` = '2' AND `Content`.`Active` = '1' order by `Content`.`TimeCreated` desc LIMIT 0,5;
+----+-------------+-------------+--------+-------------------------------------+---------+---------+-----------------------------+------+-----------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------------+--------+-------------------------------------+---------+---------+-----------------------------+------+-----------------------------+
| 1 | SIMPLE | Content | ref | Active,Uploaded,MembershipID,TypeID | Active | 1 | const | 10 | Using where; Using filesort |
| 1 | SIMPLE | Memberships | eq_ref | PRIMARY,SourceID | PRIMARY | 4 | Player.Content.MembershipID | 1 | Using where |
| 1 | SIMPLE | Users | eq_ref | PRIMARY | PRIMARY | 4 | Player.Memberships.UserID | 1 | |
+----+-------------+-------------+--------+-------------------------------------+---------+---------+-----------------------------+------+-----------------------------+
3 rows in set (0.00 sec)


----------------

mysql> explain select `Content`.`MembershipID` from `Content` INNER JOIN `Memberships` ON ( `Content`.`MembershipID` = `Memberships`.`MembershipID` AND `Memberships`.`SourceID` = '42' ) INNER JOIN `Users` ON ( `Memberships`.`UserID` = `Users`.`UserID` ) where `Content`.`TypeID` = '8' AND`Content`.`Uploaded` = '2' AND `Content`.`Active` = '1' order by `Content`.`TimeCreated` desc LIMIT 0,5;
+----+-------------+-------------+--------+-------------------------------------+---------+---------+-----------------------------+------+-----------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------------+--------+-------------------------------------+---------+---------+-----------------------------+------+-----------------------------+
| 1 | SIMPLE | Content | ref | Active,Uploaded,MembershipID,TypeID | Active | 1 | const | 10 | Using where; Using filesort |
| 1 | SIMPLE | Memberships | eq_ref | PRIMARY,SourceID | PRIMARY | 4 | Player.Content.MembershipID | 1 | Using where |
| 1 | SIMPLE | Users | eq_ref | PRIMARY | PRIMARY | 4 | Player.Memberships.UserID | 1 | |
+----+-------------+-------------+--------+-------------------------------------+---------+---------+-----------------------------+------+-----------------------------+
3 rows in set (0.00 sec)

--------------

mysql> explain select `Content`.`contentId`,`Content`.`MembershipID`,`Content`.`SourceGroup`, `Content`.`TypeID`,`Content`.`CategoryID`,`Content`.`Name`,`Content`.`Location`, `Content`.`Filesize`,`Content`.`OrigCRC`,`Content`.`Description`,`Content`.`ESRB`, `Content`.`Thumbnail`,`Content`.`Private`,`Content`.`Default`,`Content`.`Uploaded`, `Content`.`Progress`,`Content`.`Views`,`Content`.`MetterID`,`Content`.`Active`, `Content`.`TimeUpdated`,`Content`.`TimeCreated`, `Users`.`FirstName` as Author from `Content` INNER JOIN `Memberships` ON ( `Content`.`MembershipID` = `Memberships`.`MembershipID` AND `Memberships`.`SourceID` = '42' ) INNER JOIN `Users` ON ( `Memberships`.`UserID` = `Users`.`UserID` ) where `Content`.`TypeID` = '8' AND`Content`.`Uploaded` = '2' AND `Content`.`Active` = '1' order by `Content`.`TimeCreated` desc LIMIT 0,5;
+----+-------------+-------------+--------+-------------------------------------+--------------+---------+---------------------------------+------+---------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------------+--------+-------------------------------------+--------------+---------+---------------------------------+------+---------------------------------+
| 1 | SIMPLE | Memberships | ref | PRIMARY,SourceID | SourceID | 4 | const | 53 | Using temporary; Using filesort |
| 1 | SIMPLE | Content | ref | Active,Uploaded,MembershipID,TypeID | MembershipID | 4 | Player.Memberships.MembershipID | 13 | Using where |
| 1 | SIMPLE | Users | eq_ref | PRIMARY | PRIMARY | 4 | Player.Memberships.UserID | 1 | |
+----+-------------+-------------+--------+-------------------------------------+--------------+---------+---------------------------------+------+---------------------------------+
3 rows in set (0.00 sec)

>
> what version of cluster are you running?
>

5.0.24

> what options (condition pushdown?)?

I didn't have condition pushdown enabled, however I ran

SET engine_condition_pushdown=on;

And I didn't get any performance push. The main difference I can see in the explains is the use of temporary table on my non-cluster sql (third one).

Any ideas how to fix the problem? I do appreciate it!

Options: ReplyQuote


Subject
Views
Written By
Posted
2624
September 27, 2006 03:11PM
Re: Slow query in cluster but not outside
1193
September 28, 2006 06:56AM
1198
September 28, 2006 03:42PM
1172
September 28, 2006 05:30PM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.