Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL-Partitionierung und Joins

Partitionierte Tabellen können in Joins verwendet werden.

Optimieren Sie das where Klausel, um nur eine Partition einzuschließen, um die beste Leistung zu erzielen.
z.B. Wenn Sie nach Jahr partitionieren, können Sie einen Join wie folgt ausführen:

select * from a
inner join partioned_table p on (p.id = a.id)
where p.year = '2011';

Diese Abfrage funktioniert mit und ohne Where-Klausel, aber mit der Where-Klausel ist sie viel schneller, da Sie nur auf eine Partition zugreifen.
Wenn Sie auf mehrere Partitionen zugreifen, muss MySQL eine temporäre Tabelle verwenden, um die Partitionen zusammenzufügen zusammen, bevor es den Join durchführen kann.
Diese Art widerspricht dem Zweck von Partitionen.