| Showing entries 1 to 6 |
On Thursday, November 04, at 0900PST/1700CET/1600GMT there is a webinar about Pushed Down Joins. This webinar will explain how Pushed Down Joins works, and some performance numbers.At the 2010 MySQL User Conference, Jonas Oreland presented on the work he’s been doing on improving the performance of joins when using MySQL Cluster – the slides are available for download. While not ready for production systems, a preview version is available for you to try out. The purpose of this blog is to step through testing an example query as well as presenting the results (SPOILER: In one configuration, I got a 50x speedup!).
SPJ is by no means complete and there are a number of constraints as to which queries benefit (and I’ll give an example of one that
[Read more...]At the moment, there are two big features in the works in MySQL optimizer - Subquery optimizations and Batched Key Access. While the former is a part of MySQL 6.0, I wrote about it here in my blog, and so forth, the latter was in nearly stealth mode until a couple of weeks ago.
That's no longer the case:
The idea how to speed up nested-loops join a little I've mentioned earlier has now been promoted into a worklog entry. It is now known as WL#3724 "Short-Cutting Join Execution: Speeding up star queries" and its text is publicly available at MySQLForge.
At the moment there is only a short description, but hopefully Martin Hansson (the assigned developer) will add more content there.
After this post I've got a question how one can tell if his outer join was converted to inner. You can find it out by looking at the warning generated by EXPLAIN EXTENDED. If the outer join wasn't converted, you'll see it in the rewritten query in the warning:
mysql> explain extended select * from t1 left join (t2, t3) on t2.a= t1.a; ... 3 rows in set, 1 warning (0.00 sec) mysql> show warnings\G *************************** 1. row *************************** Level: Note Code: 1003 Message: select `test`.`t1`.`a` AS `a`,`test`.`t2`.`a` AS `a`,`test`.`t3`.`a` AS `a` from `test`.`t1` left join (`test`.`t2` join `test`.`t3`) on ((`test`.`t2`. `a` = `test`.`t1`.`a`)) where 1
In this query LEFT JOIN is not converted to inner.
Now let's try a query where outer join will be converted:
mysql> explain extended select * from[Read more...]
| Showing entries 1 to 6 |