Zuallererst bezweifle ich die Verwendung eines äußeren Joins, da die Order by auf der rechten Seite arbeitet und die durch den linken Join eingefügten NULLen wahrscheinlich Chaos damit anrichten.
Unabhängig davon wäre der einfachste Ansatz, diese Abfrage zu beschleunigen, ein abdeckender Index für pb.id_brand und pb.brand. Dadurch kann die Bestellung nach „unter Verwendung des Index“ mit der Join-Bedingung ausgewertet werden. Die Alternative besteht darin, einen Weg zu finden, die Größe des Zwischenergebnisses zu reduzieren, das an order-by übergeben wird.
Dennoch lässt mich die Kombination von Outer-Join, Order-By und Limit fragen, wonach genau Sie fragen und ob es nicht einen besseren Weg gibt, die Abfrage selbst auszudrücken.