Resultados Mysql ordenados por lista que é única para cada usuário

Eu tenho uma tabela de milhares de produtos e 50 ou mais usuários autenticados.

Todos esses usuários exibem os produtos em seus próprios sites e todos eles exigem que eles sejam solicitados de forma diferente.

Eu estou precisando de algum tipo de tabela separada para as ordens que contém a coluna product_id, user_id e order?

Como eu faço isso da maneira mais eficiente no mysql, de modo a ser muito rápido, e não ficar lento se eu tiver milhões de produtos no banco de dados.

É mesmo sábio fazê-lo no mysql ou eu deveria estar usando algum tipo de outro índice como solr / lucene?

Minha tabela de produtos é chamada de "produtos" Minha tabela de usuários é chamada de "usuários"

Um bom exemplo da funcionalidade que eu preciso é a pesquisa do Google, onde você pode encomendar / suprimir os resultados, se você estiver logado.

editar: os resultados do produto serão paginados e os usuários têm autoridade para editar os produtos, portanto, não apenas está pronto

questionAnswers(3)

yourAnswerToTheQuestion