Будет ли какой-либо недостаток производительности / хранилища при выборе версии String?
Строки намного сложнее, чем кажется. Например:
- Символы ASCII или Unicode?
- Что такое сопоставление?
- Тип данных
char()
или varchar()
?
Все это влияет на сравнения и стоимость - в большинстве баз данных. С другой стороны, целые числа просты. Они просто бинарные представления. Конечно, они могут быть объявлены как беззнаковые, а не подписанные, но это один вариант по сравнению со многими со строками.
SQLite использует систему тайных типов данных, совершенно отличную от других баз данных (и от стандартных SQL), хранящих тип со значением, а не с определением столбца. Я не знаю, как это повлияет на производительность индексов в этой базе данных.