Принципиальных отличий нет. Просто на практие для «id»-like колонок лучше использовать unique constraint, а для колонок, использующихся в сортировках и where-условиях использовать index. Так просто намного понятнее и предсказуемее знакомиться с базой другому разработчику.
А в целом
magnitudo прав
«Фактически создавая индекс вы создаёте ограничение и наоборот.»