powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Увеличит ли определенная денормализация производительность в определнном сценарии?
16 сообщений из 16, страница 1 из 1
Увеличит ли определенная денормализация производительность в определнном сценарии?
    #38587002
Kolyunya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую участников форума!
Подскажите пожалуйста по поводу одного приема денормализации. Допустим есть таблица с очень большим числом записей. В этой таблице есть поле, которое хранит id некоторого параметра. id этого параметра может быть от 1 до 5. Ни при каких обстоятельствах даже теоретически никогда не появятся других значения этого параметра.

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

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

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

Большое спасибо за советы!
...
Рейтинг: 0 / 0
Увеличит ли определенная денормализация производительность в определнном сценарии?
    #38587005
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зависит от того, будут ли в запросе другие условия фильтрации и какие именно это будут условия.
...
Рейтинг: 0 / 0
Увеличит ли определенная денормализация производительность в определнном сценарии?
    #38587006
Kolyunya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft, в запросе практически всегда будет фильтрация по остальным полям, короме того может быть несколько присоединений.
...
Рейтинг: 0 / 0
Увеличит ли определенная денормализация производительность в определнном сценарии?
    #38587007
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kolyunyamiksoft, в запросе практически всегда будет фильтрация по остальным полям, короме того может быть несколько присоединений.Тогда зависит от селективности это фильтрации. Если она будет выполняться по индексу и будет высокоселективна (т.е. после нее будет мало записей в результате), то толку от вашего разбиения не будет или будет крайне мало.
...
Рейтинг: 0 / 0
Увеличит ли определенная денормализация производительность в определнном сценарии?
    #38587008
Kolyunya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft, в большинстве случаев в результате будет выбрано где-то максимум 5-10% от всех записей с определенным значением параметра. При таком сценарии вы не советуете разбивать большую таблицу на подтаблицы?

Если вас не затруднит, не могли бы вы пояснить, почему выигрыш в производительности не будет заметен? Ведь нам придется просматривать условно в 5 раз меньше записей при выборке?
...
Рейтинг: 0 / 0
Увеличит ли определенная денормализация производительность в определнном сценарии?
    #38587010
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KolyunyaЕсли вас не затруднит, не могли бы вы пояснить, почему выигрыш в производительности не будет заметен? Ведь нам придется просматривать условно в 5 раз меньше записей при выборке?При использовании индекса просматривается далеко не вся таблица, а только те записи, которые согласно этому индексу, могут подпадать под нужные условия.
...
Рейтинг: 0 / 0
Увеличит ли определенная денормализация производительность в определнном сценарии?
    #38587011
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kolyunyaв большинстве случаев в результате будет выбрано где-то максимум 5-10% от всех записей с определенным значением параметра.Величина достаточно большая, по индексу может и не пойти.
Надо либо пробовать, либо излагайте все подробности, вплоть до распределения данных и точных запросов.
...
Рейтинг: 0 / 0
Увеличит ли определенная денормализация производительность в определнном сценарии?
    #38587012
Kolyunya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft, спасибо за советы, никаких точных данных и запросов нет пока к сожалению нет. Известно только, что единственное важное для нас это будет скорость выборки. Все остальное - вторично. Советуете реализовать вариант с 1 таблицей, протестировать в реальных условиях и если что уже думать, как дальше оптимизировать?
...
Рейтинг: 0 / 0
Увеличит ли определенная денормализация производительность в определнном сценарии?
    #38587013
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KolyunyaСоветуете реализовать вариант с 1 таблицей, протестировать в реальных условиях и если что уже думать, как дальше оптимизировать?Да. Если будет недостаточно быстро - обращайтесь в подфорум по используемой СУБД.
...
Рейтинг: 0 / 0
Увеличит ли определенная денормализация производительность в определнном сценарии?
    #38587036
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И это называется не денормализацией, а секционированием (partitioning)
...
Рейтинг: 0 / 0
Увеличит ли определенная денормализация производительность в определнном сценарии?
    #38587055
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kolyunya,

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


Нет, не даст. Размер одной таблицы упадет примерно в 5 раз. Это на пол порядка. Мало.

Если доступ был не по индексу, стоимость выборки упадет в 5 раз, но, видимо, все равно останется неприемлимо высокой, потому что таблицы размером N и N/5 обе будут очень большими.

Если доступ был по индексу, то стоимость упадет на логарифм 5, потому что стоимость поиска по индексу логарифмическая. Это будет порядка 0.5 раз. Типа было 7, станет 6.4. т.е. стоимость упадет очень несущественно.


Поэтому в итоге нет смысла разбивать таблицу на части. Невыгодно. Выгоднее добавлять это поле (ключ разбиения) в индексы и использовать его при фильтрации.
...
Рейтинг: 0 / 0
Увеличит ли определенная денормализация производительность в определнном сценарии?
    #38587100
Kolyunya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv, miksoft, спасибо за ответы! Задал тот же вопрос на SE, там мне ответили, ровно противоположное, правда я не понял аргументацию ответа там. Может вы поймете, что именно usr приводит в качестве доводов? Он ошибается?
Еще раз большое спасибо за ответы!
...
Рейтинг: 0 / 0
Увеличит ли определенная денормализация производительность в определнном сценарии?
    #38587111
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kolyunya,

Я что-то не увидел там обратного ответа.
...
Рейтинг: 0 / 0
Увеличит ли определенная денормализация производительность в определнном сценарии?
    #38587114
Kolyunya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv, не очень понятно, что автор хотел там сказать: сначала говорит "Yes, you could use partitioning here. Partition elimination will kick in.", а потом " don't see the necessity for creating 5 tables, or using partitioning here. I can see how that might improve performance by a few percent".

Если я правильно понял, он тоже говорит, что выигрыш будет очень маленьким, если будет вообще.

Еще раз спасибо за советы!
...
Рейтинг: 0 / 0
Увеличит ли определенная денормализация производительность в определнном сценарии?
    #38587144
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kolyunya, miksoft Вам уже всё правильно сказал. Выигрыш от партиционирования будет в тех случаях, когда запросы будут пытаться делать full table scan. Будут ли они его делать в Вашем случае - Вы пока не знаете. Поэтому делайте пока простую таблицу, а вопрос её партиционирования отложите на время, когда сможете увидеть и проэкспериментировать. Разбить таблицу на партиции не так сложно, а вот взять партиционированную таблицу и понять, что её надо было партиционировать по совсем другому критерию - будет довольно глупо.
...
Рейтинг: 0 / 0
Увеличит ли определенная денормализация производительность в определнном сценарии?
    #38587999
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv.

Если доступ был по индексу, то стоимость упадет на логарифм 5, потому что стоимость поиска по индексу логарифмическая.
Really?
Выборка по индексу 100 строк из таблицы в 10 000 000 строк и 100 строк из таблицы в 10 000 строк будет различаться в "логарифм 1000" раз?
Вы, товарищ полковник, с прямым углом перепутали - стоимость поиска одиночного значения по индексу и стоимость выборки по диапазону индекса
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Увеличит ли определенная денормализация производительность в определнном сценарии?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]