Оптимизация SQL: сколько столбцов на таблице?

К сожалению, вы можете достичь этого только с помощью некоторого JavaScript и таких вещей, как setTimeout . Если это не будет большой список, вы можете отобразить его в массиве JavaScript, а затем использовать, например, setTimeout для переключения фото. Это не лучшая идея (я даже помню, как читал какую-то статью с некоторыми обоснованными замечаниями, почему она плохая, постараюсь ее найти), но сработал бы. Итак, вы можете сделать что-то вроде этого в конце тела в шаблоне:


После обновления: если вы не хотите обновлять страницу, решение, вероятно, будет следующим: [ 1111]

views.py

from django.http import JsonResponse
def hello_world(request):
    return render(request, 'hello_world.html', {
        'current_time': str(datetime.now()),
    })

def hellow_world_ajax(request):
    return JsonResponse({'current_time': str(datetime.now())})

Добавить url(r'^hello_ajax/ в urls.py.

А в теле шаблона напишите JavaScript, используя, например: setInterval и либо vanilla JS fetch , либо некоторую библиотеку / инфраструктуру js, вставьте логику периодического обновления:

[112 ], hellow_world_ajax, name="hello_ajax"), в urls.py.

А в теле шаблона напишите JavaScript, используя, например: setInterval и либо vanilla JS fetch , либо некоторую библиотеку / инфраструктуру js, вставьте логику периодического обновления:

[112 ]

15
задан Joe Phillips 28 January 2009 в 19:56
поделиться

12 ответов

Обычно лучше разработать Ваши таблицы сначала, чтобы смоделировать требования к данным и удовлетворить правила нормализации. Затем беспокойство об оптимизации как то, сколько страниц требуется для хранения строки и т.д.

Я соглашаюсь с другими плакатами здесь, что большое количество столбцов является потенциальным красным флагом, что Ваша таблица правильно не нормализована. Но это могло бы быть прекрасным в этом случае. Мы не можем сказать из Вашего описания.

В любом случае разделение таблицы просто, потому что большое количество столбцов делает Вас обеспокоенными, не является правильным средством. Это действительно вызывает какие-либо дефекты или узкое место производительности? Необходимо иметь размеры, чтобы быть уверенными, не предположить.

20
ответ дан 1 December 2019 в 01:11
поделиться

Хорошее эмпирическое правило, которое я нашел, просто, выращивает ли таблица строки, в то время как проект продолжается,

Например:

На проекте я продолжаю работать, исходные разработчики решили включать полномочия сайта как столбцы в пользовательской таблице.

Так теперь мы постоянно добавляем больше столбцов, как новые опции реализованы на сайте. очевидно, это не оптимально. Лучшее решение состояло бы в том, чтобы иметь таблицу, содержащую полномочия и объединяющую таблицу между пользователями и полномочия присвоить им.

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

По крайней мере, это - мое мнение.

5
ответ дан 1 December 2019 в 01:11
поделиться

Это могло, конечно, влиять на производительность, если люди обтекают с большим количеством "Выбора * от GiantTableWithManyColumns"...

2
ответ дан 1 December 2019 в 01:11
поделиться

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

3
ответ дан 1 December 2019 в 01:11
поделиться

Если бы у Вас был объект, детализирующий данные в базе данных, то у Вас был бы отдельный объект с 120 полями, или Вы будете просматривать данные для извлечения данных, которые логически различимы? Можно встроить Адресные сведения с Данными о клиентах, но имеет смысл удалять его и помещать его в таблицу Addresses, даже если это сохраняет 1:1 отображающийся с Человеком.

По линии Вы, возможно, должны были бы иметь запись их предыдущего адреса, и путем разделения его Вы удалили одну основную проблему, осуществляющую рефакторинг Вашу систему.

Какое-либо из полей дублировано по нескольким строкам? Т.е. детали клиента копируются, один на счет? В этом случае должна быть одна клиентская запись в таблице клиентов и n записи в таблице Invoices.

Одно место, где Вы не должны фиксировать поврежденную нормализацию, - то, где у Вас есть таблица фактов (для аудита, и т.д.), где цель к агрегированным данным для работы исследований. Эти таблицы обычно заполняются из правильно нормализованных таблиц однако (в течение ночи, например).

3
ответ дан 1 December 2019 в 01:11
поделиться

Вот официальная статистика для http://msdn.microsoft.com/en-us/library/ms143432.aspx SQL Server 2005 года

Следует иметь в виду, что они - максимумы и являются не обязательно лучшими для удобства использования.

Думайте о разделении 126 столбцов в разделы. Например, если это - своего рода таблица "человека", Вы могли бы иметь

Идентификатор человека, AddressNum, AddressSt, AptNo, область, страна, PostalCode, телефон, CellPhone, факс

Но Вы могли разделить это на идентификатор Человека, AddressID, PhoneID

Идентификатор адреса, AddressNum, AddressSt, AptNo, область, страна, PostalCode

Телефонный идентификатор, Телефон, Сотовый телефон, факс

Во втором Вы могли также сохранить себя от репликации данных при наличии всех людей с тем же адресом, имеют тот же addressId вместо того, чтобы копировать тот же текст много раз.

2
ответ дан 1 December 2019 в 01:11
поделиться

Обычно избыточные столбцы указывают на неподходящую нормализацию, но трудно судить, не имея еще некоторых деталей о Ваших требованиях.

3
ответ дан 1 December 2019 в 01:11
поделиться

Таблица должна иметь как можно меньше столбцов.....

в SQL-сервере таблицы хранятся на страницах, 8 страниц степень

в SQL-сервере страница может содержать приблизительно 8 060 байтов, чем большему количеству данных можно соответствовать на странице, тем меньше iOS Вы имеете для создания для возврата данных

Вы, вероятно, хотите нормализовать (иначе вертикальное разделение) свою базу данных

-1
ответ дан 1 December 2019 в 01:11
поделиться

Это кажется, что у Вас есть потенциальные проблемы нормализации.

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

1
ответ дан 1 December 2019 в 01:11
поделиться

Таблица UserData в SharePoint имеет 201 поле, но разработана для особых целей.
Нормальные таблицы не должны быть этим широким, по-моему.

Вы могли, вероятно, нормализовать еще немного. И прочитанный некоторые сообщения в сети об оптимизации таблицы.

Трудно сказать, не зная немного больше.

0
ответ дан 1 December 2019 в 01:11
поделиться

Ну, я не знаю, сколько столбцов возможно в sql, но я очень уверен в одном: когда вы проектируете таблицу, каждая таблица является сущностью, что означает, что каждая таблица должна содержать информация о человеке, месте, событии или объекте. Так что до тех пор, пока в моей жизни я не знаю, может ли вещь содержать столько данных / информации.

Во-вторых, вы должны заметить, что существует метод, называемый нормализацией, который в основном используется для разделения данных / информации на подразделы, чтобы можно было легко поддерживать базу данных. Думаю, это прояснит вашу идею.

0
ответ дан 1 December 2019 в 01:11
поделиться

Я в аналогичном положении. Да, действительно существует ситуация, когда нормализованная таблица имеет, как в моем случае, около 90 столбцов: приложение рабочего потока, которое отслеживает множество состояний, которые кейс может иметь в дополнение к атрибутам переменных для каждого состояния. Таким образом, по мере развития каждого случая (представленного записью) в конечном итоге все столбцы для этого случая заполняются. Теперь в моей ситуации есть 3 логических группировки (15 столбцов + 10 столбцов + 65 столбцов). Так что, держать ли я его в одной таблице (индекс - CaseID) или разделить на 3 таблицы, соединенные однозначным соотношением?

0
ответ дан 1 December 2019 в 01:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: