Я не очень хорошо знаком с внутренностями индексов в mySql, но по двум знакомым мне продуктам вендоров баз данных (MsSQL, Oracle) это сбалансированные структуры дерева, узлы которых организованы в виде последовательного кортежа столбцы, по которым определен индекс ( В определенной последовательности )
Таким образом, если mySql не делает это совсем иначе (возможно, нет), любой составной индекс (для более чем одного столбца) может использоваться для любого запроса, который необходимо фильтровать или сортировать по подмножество столбцов в индексе, если список столбцов совместим, т. Е. Если столбцы, когда они упорядочены так же, как упорядоченный список столбцов в полном индексе, являются упорядоченное подмножество полного набора столбцов индекса, которое начинается в начале фактической последовательности индексов, без пропусков, кроме конца ...
Другими словами, это означает, что если у вас есть индекс для (a, b, c, d), запрос, который фильтрует по (a), (a, b) или (a, b, c), также может используйте индекс, но запрос, который нужно отфильтровать по (b), (c) или (b, c), не сможет использовать индекс ...
Так что в вашем случае, если вам часто нужно фильтровать или сортировать только по столбцу item , вам нужно добавить еще один индекс для этого столбца ...