Building MySQL InnoDB clustered indexes
So as @RickJames, suggested in one of the comments, cardinality has little to do with order of indexes. Therefore if your query is similar to 

SELECT id, search_id, provider_id FROM t1 WHERE search_id=123 AND provider_id=567


Then the index should be ordered search_id,provider_id. If however you are running a more range based query. 


  For efficiency, the "=constant" column should come before the "range"
  column in the INDEX


That means whenever you have a query as follows.

SELECT id, search_id, provider_id FROM t1 WHERE search_id&gt;123 AND
provider_id&lt;567 AND columnX=1


Then your index should be created as follows columnX,search_id,provider_id.