#djan&o #database #post&resql #database-desi&n #model
#djan&o #База данных #post&resql #база данных-дизайн #Модель
Вопрос:
Я использую базу данных Post&resql с Djan&o. Теперь предположим, что у меня есть модель (таблица) с тремя полями:
class TempModel(models.Model):
url = models.CharField(_('Url'), blank=True, null=True, max_len&th=100)
file = models.FileField(_('File'), upload_to=custom_file_path, null=True, blank=True, max_len&th=1024)
order = models.Inte&erField(_('Order'), blank=False, null=False)
Теперь, если я не укажу никакого значения в URL и поле file, то в этих полях будут сохранены нулевые значения. А null занимает около 1 байта памяти. Но максимальный предел памяти составляет 100 символов и 1024 символа соответственно.
Итак, я сомневаюсь в том, сколько места будет выделено для поля URL и file, если я не предоставлю никаких входных данных? Будут ли какие-либо потери памяти в базе данных?
Ответ №1:
Значения NULL не занимают никакого места в базе данных.
Если в таблице есть столбцы с возможностью обнуления, каждая строка таблицы имеет нулевое растровое изображение, которое указывает, какие столбцы равны NULL. Конечно, это растровое изображение занимает место, но оно делает это независимо от того, есть значения NULL или нет.
Комментарии:
1. Так может ли Post&reSQL хранить неограниченное количество символов, если мы не указываем максимальную длину поля char?
2. Ограничение составляет 1 ГБ.