169 похожих чатов

Товарищи, вопрос. У меня есть БД (MS SQL), там поле

название (не уникальное, типа название топиков),  и дата создания. В этой таблице в основном надо будет только вставлять новые данные. И выборка будет в основном фильтроваться по названию топика и потом сортироваться по истории создания этого топика. Какой лучше тип индексирования использовать? Я вот прочитал, что хорошо подойдет некластеризованное индексирование (по названию топика). Есть какой-то совет от опытных спецов.
В теории будет выглядеть так, условно у меня 400 000 строк, каждый топик будет иметь максимум по 60 строк, и надо будет их отобразить в сортированном виде по времени актуальности.

13 ответов

16 просмотров

Какие данные нужно вставлять?

Просто индекс и всё.

Ulov-Kalmarov Автор вопроса
Bektur Bekboev
Какие данные нужно вставлять?

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

Ulov-Kalmarov Автор вопроса
Ilya Zviagin
Просто индекс создай и успокойся

Индекс на название топика (не уникальный)?

Ulov Kalmarov
В основном новое название топика (либо названее ра...

Ну так текст то по алфавиту наверное искать проще? При чем тут уникальность к кластеру?

Ulov-Kalmarov Автор вопроса
Gleb Zabezhinskiy
Ну так текст то по алфавиту наверное искать проще?...

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

Ulov Kalmarov
Возможно, некорректно написал, я хотел, чтобы бд м...

Ни когда не задумывался над этой стороной оптимизации. Один момент: кластеризованный (кластерный?) индекс - это сама таблица. НЕкластерный индекс - это дополнительная "таблица" рядом с основной 🤷‍♂

Ulov Kalmarov
Возможно, некорректно написал, я хотел, чтобы бд м...

Всё,- я втупил,- это ты про оперативку... (в смысле "памяти меньше тратиться") ... 😁

Ulov Kalmarov
Возможно, некорректно написал, я хотел, чтобы бд м...

Ну не совсем так. Если тебе некластерного будет хватать для фильтра и выборки он вообще не пойдёт в кластереый, тогда да, в теории он может тебе в память поднять только не коастерный индекс и тогда и поиск будет быстрее и памяти меньше, но если у тебя будут лукапы, то тогда он всё равно будет в память поднимать данные из кластерного/кучи

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

Обсуждают сегодня

Добрый день. Хочу сделать отрисовку по команде на панели. Почему-то рисуется только при втором вызове. С чем может быть связано, не подскажете? procedure TForm1.FormDblClick(...
Kirill Filippenok
20
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Эх кто-то пришел и весь праздник испортил :( You need complex FBX scene importing setup to change things on import? good luck with that. You need navigation and pathfinding? g...
Serg Gini
5
Всем привет! Нужен совет от опытных. Переношу свой проект с Делфи 10.2 Токио на Лазарус 3.2 установленный через инсталлятор fpcupdeluxe-x86_64-win64. При импортировании проект...
Дмитрий Завгородний
7
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Какого хера? /Sources/App/Modules/User/Models/UserLinkApple.swift:21:20: warning: stored property '_id' of 'Sendable'-conforming class 'UserLinkApple' is mutable @ID(...
Alexander Sherbakov
14
Привет всем. Подскажите где можно посмотреть, какая версия электрон, поддерживает версии windows? Некий changelog. Мне бы желательно, поддержку 7,8,10... latest, как понимаю и...
Anonym Squad
21
Почему стало ломаться на D11? "739002.86400000' is not a valid timestamp" function IncDateTime(aStamp:TTimeStamp;aKind:TTriggerKind;aInterval:Integer):TDateTime; //aStamp = 2...
Катерина Свиридова
8
у меня программа тысяч на 10 строк. Там в основном моя собственная логика. А по содержанию она просто работает с файловой системой (мастер для бэкапов) и таблицей с данными о ...
Дмитрий Завгородний
5
У тебя в конфиге нигде нет deny all; или вообще любого deny?
Alexander Sherbakov
10
Карта сайта