Это будет в основном зависеть от используемого вами механизма SQL (Oracle, SQL Server, MySQL, Postgres и т. Д.), Поскольку все они будут оптимизированы различными способами.
Исходя из моего опыта работы с SQL Server, я не видел какой-либо ощутимой разницы между поиском числа или поиском строки при условии, что целевые столбцы соответствующим образом проиндексированы. Таким образом, я бы, вероятно, выбрал (2), так как это на один запрос SQL меньше. Однако я бы также проверил каждое решение для проверки времени ...
У меня было слишком много случаев, когда решение принималось «по соображениям производительности», имело место обратный удар или имело незначительную выгоду, поэтому любое решение, подобное этому, основывалось на твердых цифрах, а не на теоретической основе.