Для чего нужен составной ключ в mysql?
Составные ключи могут служить заменой специально вводимым идентификаторам.
Например есть таблица Пользователи вида Users(id, name) и таблица Фотки вида Photos(id, name).
Таблица содержащая фотки пользователей будет таблица UsersPhotos(user_id, photo_id). В данном случае эти два поля образуют составной ключ, эта связка будет уникальна и нет смысла вводить избыточный идентификатор, если этого не требует логика приложения.
Если ключ primary, то, как уже ответили, чтобы использовать уникальную комбинацию полей вместо auto_increment.
А если речь идёт об индексе, то mysql не умеет их комбинировать. Соответственно, если вам нужна фильтрация, например, по тэгу статьи и дате публикации, и это частый запрос, то вам придётся добавить составной индекс. Причём, порядок имеет значение - key(tag_id, tm) не будет использоваться в запросах с tm, но без tag_id в where.