I know Oracle better than MySQL, but I think this is the same in this case. An index is usually a B-Tree, which means that if an index (type, status, user_id), the database can usually use it to search (type, status)because it is the first part of the combined index. But this is not the case if you are using (status, user_id), if only something like Oracle INDEX_SKIP_SCAN.
Having a second index covering only two fields can be a little faster, how much will depend on the data. But if you have two indexes, then inserting data is slower, as both of them must be supported. It also takes up more disk space. So this is a performance tradeoff that you can only solve.
source
share