Как и при индексировании всех вещей, это зависит от вашей конкретной ситуации.
Лично я бы выбрал два столбца, одну версию индекса, так как она более правильная, когда вы думаете о данных, делает запросы более четкими, учитываетвыбор диапазона, если вы хотите их и т. д. Сложный ссылочный столбец, скорее всего, будет иметь тип varchar, в то время как два отдельных могут быть int и varchar, что, хотя я считаю, что это два сравнения, будет быстрее ..
Будете ли вы когда-нибудь запросить на user_id
без key
?IE возвращает все настройки для конкретного пользователя.
Будете ли вы когда-либо выполнять диапазонные запросы для всех пользователей с определенной настройкой или для того, чтобы 1_something
был неэффективным?(сравнение varchars с диапазоном значений == неэффективно)
Невозможно быть уверенным, не зная, какие другие запросы вы хотите выполнить, какой размер таблиц ожидается, выборочные значения и т. д. и т. д. и т. д.