Вопрос о том, как данные внешнего ключа хранятся в SQL

Я знаю, что это ультра-базовое, но я всегда придерживался этого предположения и хотел бы подтвердить, что это правда (в общем, с деталями, характерными для различных реализаций)

Допустим, у меня есть таблица с текстовым столбцом «Fruit». В этом столбце всегда появляется только одно из четырех значений: груша, яблоко, банан и клубника. У меня миллион строк.

Вместо того, чтобы повторять эти данные (в среднем) по четверти миллиона раз каждая, если я извлечу их в другую таблицу, в которой есть столбец Fruit и только эти четыре строки, а затем сделаю исходный столбец внешний ключ, экономит ли он место?

Я предполагаю, что четыре названия фруктов сохраняются только один раз, и что миллион строк теперь имеют указатели, индексы или какую-то ссылку во вторую таблицу.

Если мои значения строк длиннее, чем короткие названия фруктов, я предполагаю, что экономия / оптимизация еще больше.

9
задан Dave 24 August 2011 в 21:41
поделиться