Mysql – Partition Wise Joins in Mysql

data-warehouseinnodbMySQLpartitioning

Is it possible to create or simulate a partition-wise join in Mysql/Innodb?? Here is a good description of partition-wise joins….

https://blogs.oracle.com/datawarehousing/entry/partition_wise_joins
*A partition wise join is a join between (for simplicity) two tables that are partitioned on the same column with the same partitioning scheme.

If you now join the two tables on that partitioned column you can break up the join in smaller joins exactly along the partitions in the data. Since they are partitioned (grouped) into the same buckets, all values required to do the join live in the equivalent bucket on either sides. No need to talk to anyone else, no need to redistribute data to anyone else… in short, the optimal join method for parallel processing of two large data sets.*

Best Answer

The short answer is no, MySQL does not have that 'feature'.

The long answer (and opinion)...

Perhaps 1% of tables are partitioned. Perhaps 1% of partitioned tables could use that feature. Now imagine the effort to implement, test, and deploy such an obscure feature. Oracle has had several decades to incorporate little-used features like that. MySQL is relatively young. It is still lean. (But obscure features are creeping in. That one has not shown up yet.)

The reason why only 1% of tables are partitioned is that there is no performance to be gained for the other 99%. Usually an appropriate index will do just as good as partitioning.

Would you like to present your use case? (Beware: I may say that you gained nothing by using partitioning.)