powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / MySQL [закрыт для гостей] / Господа базоёбы, скок сюды, Поиск: Искать сообщения, созданные автором: eNose  
14 сообщений из 14, страница 1 из 1
MySQL / Господа базоёбы, скок сюды
    #61757
eNose
Скрыть профиль Поместить в игнор-лист
Участник
[не активирован]
Tammy Jo Saint Cloud  09.06.2022, 20:38
[игнорируется]
Горбатый ёж  09.06.2022, 16:45
[игнорируется]
Tammy Jo Saint Cloud  09.06.2022, 16:43
[игнорируется]
В некоторых случаях нормальный человек НИКОГДА не будет делать индекс на ФК
Случаи в студию.
к примеру, у нас есть таблица неких фактов/журнал/леджер, который содержит поле... ну, например - "аналитика", которое, разумеется, ссылается на справочник "аналитика". Если ссылается - значит нужен ФК.
Но по этому полю только "дополнительно фильтруют" и никогда не используют это поле для основной фильтрации
Следовательно, это поле индексировать не нужно
Таким образом на большой таблице мы экономим один большой ненужный индекс
И если полей типа "аналитика" несколько - то таким образом мы эконономим несколько раз
А отдельной таблицей религия не позволяет сделать?
...
Рейтинг: 0 / 0
MySQL / Господа базоёбы, скок сюды
    #63552
eNose
Скрыть профиль Поместить в игнор-лист
Участник
[не активирован]
Tammy Jo Saint Cloud  14.06.2022, 22:03
[игнорируется]
eNose  12.06.2022, 13:48
[игнорируется]
Tammy Jo Saint Cloud  09.06.2022, 20:38
[игнорируется]
Горбатый ёж  09.06.2022, 16:45
[игнорируется]
Tammy Jo Saint Cloud  09.06.2022, 16:43
[игнорируется]
...
Случаи в студию.
к примеру, у нас есть таблица неких фактов/журнал/леджер, который содержит поле... ну, например - "аналитика", которое, разумеется, ссылается на справочник "аналитика". Если ссылается - значит нужен ФК.
Но по этому полю только "дополнительно фильтруют" и никогда не используют это поле для основной фильтрации
Следовательно, это поле индексировать не нужно
Таким образом на большой таблице мы экономим один большой ненужный индекс
И если полей типа "аналитика" несколько - то таким образом мы эконономим несколько раз
А отдельной таблицей религия не позволяет сделать?
что сделать "отдельной таблицей"?
который содержит поле... ну, например - "аналитика", которое, разумеется, ссылается на справочник "аналитика"

Вот эту твою фантазию можно сделать отдельной таблицей.
Избавишься разом от фк.
...
Рейтинг: 0 / 0
MySQL / Господа базоёбы, скок сюды
    #63557
eNose
Скрыть профиль Поместить в игнор-лист
Участник
[не активирован]
Tammy Jo Saint Cloud  14.06.2022, 22:05
[игнорируется]
Sparrow  12.06.2022, 14:32
[игнорируется]
Вообще такой сайт это скорее отчётная система, тут база денормализованная должна быть.
Данные редко добавляются , о запросы всегда.
зависит от.
в некоторый случаях денормализация может приводить к значительному возрастанию обьема денормализованных данных, и весь выигрыш, который мы получаем за счет элиминации джойнов и благодаря наличию правильных удобных индексов - мы будем терять на задержках операций ввода-вывода из-за возросшего обхъема данных
Тут скорее финансовый вопрос.
Больше данных - дороже.
...
Рейтинг: 0 / 0
MySQL / Господа базоёбы, скок сюды
    #63608
eNose
Скрыть профиль Поместить в игнор-лист
Участник
[не активирован]
Tammy Jo Saint Cloud  14.06.2022, 22:05
[игнорируется]
Sparrow  12.06.2022, 14:32
[игнорируется]
Вообще такой сайт это скорее отчётная система, тут база денормализованная должна быть.
Данные редко добавляются , о запросы всегда.
зависит от.
в некоторый случаях денормализация может приводить к значительному возрастанию обьема денормализованных данных, и весь выигрыш, который мы получаем за счет элиминации джойнов и благодаря наличию правильных удобных индексов - мы будем терять на задержках операций ввода-вывода из-за возросшего обхъема данных
Речь шла о конкретно ЭТОМ сайте.
По этому, прежде чем нести внеочередной бред, посмотри на пропускную способность арендованных сетевых интерфейсов и смд дисков. И сравни их.
...
Рейтинг: 0 / 0
MySQL / Господа базоёбы, скок сюды
    #63623
eNose
Скрыть профиль Поместить в игнор-лист
Участник
[не активирован]
eNose  15.06.2022, 07:21
[игнорируется]
смд
ссд
...
Рейтинг: 0 / 0
MySQL / Господа базоёбы, скок сюды
    #63624
eNose
Скрыть профиль Поместить в игнор-лист
Участник
[не активирован]
вообще прикольно конечно

тебе говорят про этот сайт, а ты начинаешь нести абстрактный бред

типа охрененно умный, но дельного ничего предложить не можешь
...
Рейтинг: 0 / 0
MySQL / Господа базоёбы, скок сюды
    #65288
eNose
Скрыть профиль Поместить в игнор-лист
Участник
[не активирован]
Tammy Jo Saint Cloud  16.06.2022, 22:43
[игнорируется]
eNose  14.06.2022, 22:24
[игнорируется]
Tammy Jo Saint Cloud  14.06.2022, 22:03
[игнорируется]
eNose  12.06.2022, 13:48
[игнорируется]
Tammy Jo Saint Cloud  09.06.2022, 20:38
[игнорируется]
...
А отдельной таблицей религия не позволяет сделать?
что сделать "отдельной таблицей"?
который содержит поле... ну, например - "аналитика", которое, разумеется, ссылается на справочник "аналитика"

Вот эту твою фантазию можно сделать отдельной таблицей.
Избавишься разом от фк.
щито, прости, блять? :)

у меня написано "поле, ссылающееся на справочник (отдельную таблиц)"
и ты предлаганшь отдельную таблицу сделать отдельной таблицей?
Поле сделать отдельной таблицей
...
Рейтинг: 0 / 0
MySQL / Господа базоёбы, скок сюды
    #66130
eNose
Скрыть профиль Поместить в игнор-лист
Участник
[не активирован]
Tammy Jo Saint Cloud  17.06.2022, 22:48
[игнорируется]
eNose  17.06.2022, 05:54
[игнорируется]
Tammy Jo Saint Cloud  16.06.2022, 22:43
[игнорируется]
eNose  14.06.2022, 22:24
[игнорируется]
Tammy Jo Saint Cloud  14.06.2022, 22:03
[игнорируется]
...
который содержит поле... ну, например - "аналитика", которое, разумеется, ссылается на справочник "аналитика"

Вот эту твою фантазию можно сделать отдельной таблицей.
Избавишься разом от фк.
щито, прости, блять? :)

у меня написано "поле, ссылающееся на справочник (отдельную таблиц)"
и ты предлаганшь отдельную таблицу сделать отдельной таблицей?
Поле сделать отдельной таблицей
прости, это как?

есть таблица типа, ну не знаю

create table AnalyticCode(
id int not null primary key
,Code nvarchar(128)
)

create table SomeBigFuckingDataTab
(
Date datetime,
SomeDimension int,
SomeMeasure int,
AnalyticCodeId int not null references AnalyticCode(Id)
)
ФК позволяет нам сохранять целочную ссылочность, а индекс там в хрен не упал, т.к. по коду аналитики мы максимум фильтруем/группируем, но никогда не ищем
что тут куда выносить то?
А, вон ты про что.
Да, ты прав.
...
Рейтинг: 0 / 0
MySQL / Господа базоёбы, скок сюды
    #66131
eNose
Скрыть профиль Поместить в игнор-лист
Участник
[не активирован]
Но конкретно в твоем примере проще аналитику засунуть в SomeBigFuckingDataTab :)
...
Рейтинг: 0 / 0
MySQL / Господа базоёбы, скок сюды
    #66144
eNose
Скрыть профиль Поместить в игнор-лист
Участник
[не активирован]
Горбатый ёж  18.06.2022, 06:42
[игнорируется]
eNose  18.06.2022, 06:20
[игнорируется]
Но конкретно в твоем примере проще аналитику засунуть в SomeBigFuckingDataTab :)
Не факт.
В клиенте мы может должны видеть список значений для группировки, не таскать же нго из таблицы с данными, да и на клиенте хранить так себе идея.
create table SomeBigFuckingDataTab
(
Date datetime,
SomeDimension int,
SomeMeasure int,
AnalyticCode int,
Code nvarchar(128)
)

Не таскай

Экономить место при современной цене дисков чаще всего плохая идея
...
Рейтинг: 0 / 0
MySQL / Господа базоёбы, скок сюды
    #66149
eNose
Скрыть профиль Поместить в игнор-лист
Участник
[не активирован]
Tammy Jo Saint Cloud  17.06.2022, 22:48
[игнорируется]
по коду аналитики мы максимум фильтруем/группируем, но никогда не ищем
А чем "фильтруем/группируем" отличается от "ищем" для сервера?
Без дополнительных ограничений получишь фуллскан.

Или ты предлагаешь тащить на клиента и там фильтровать/группировать?
...
Рейтинг: 0 / 0
MySQL / Господа базоёбы, скок сюды
    #66150
eNose
Скрыть профиль Поместить в игнор-лист
Участник
[не активирован]
Собственно идея то понятна.
Съэкономить на индексе, но загрузить клиента.
Может упереться в сеть.
В общем зависит от множества условий, решение неуниверсальное.
...
Рейтинг: 0 / 0
MySQL / Господа базоёбы, скок сюды
    #66682
eNose
Скрыть профиль Поместить в игнор-лист
Участник
[не активирован]
Tammy Jo Saint Cloud  18.06.2022, 18:45
[игнорируется]
eNose  18.06.2022, 07:03
[игнорируется]
Tammy Jo Saint Cloud  17.06.2022, 22:48
[игнорируется]
по коду аналитики мы максимум фильтруем/группируем, но никогда не ищем
А чем "фильтруем/группируем" отличается от "ищем" для сервера?
Без дополнительных ограничений получишь фуллскан.

Или ты предлагаешь тащить на клиента и там фильтровать/группировать?
Поиск по индексу

select SomeDimension,sum(SomeMeasure)
from DataTable
where AnalyticCodeId = 16
group by SomeDimension

фильтрация/группировка
select SomeDimension,sum(case AnalyticCodeId when 16 then SomeMeasure end) as c1,sum(SomeMeasure) as c2
from DataTable
group by SomeDimension

в первом случая индекс нужен, во втором - не нужен,
Тут надо смотреть планы выполнения.
У оптимизатора может быть другое мнение.
Там же селективность рулит, он может подумать нелогично.
Тесты нужны.
...
Рейтинг: 0 / 0
MySQL / Господа базоёбы, скок сюды
    #66864
eNose
Скрыть профиль Поместить в игнор-лист
Участник
[не активирован]
Tammy Jo Saint Cloud  18.06.2022, 23:20
[игнорируется]
eNose  18.06.2022, 22:51
[игнорируется]
Tammy Jo Saint Cloud  18.06.2022, 18:45
[игнорируется]
eNose  18.06.2022, 07:03
[игнорируется]
Tammy Jo Saint Cloud  17.06.2022, 22:48
[игнорируется]
...
А чем "фильтруем/группируем" отличается от "ищем" для сервера?
Без дополнительных ограничений получишь фуллскан.

Или ты предлагаешь тащить на клиента и там фильтровать/группировать?
Поиск по индексу

select SomeDimension,sum(SomeMeasure)
from DataTable
where AnalyticCodeId = 16
group by SomeDimension

фильтрация/группировка
select SomeDimension,sum(case AnalyticCodeId when 16 then SomeMeasure end) as c1,sum(SomeMeasure) as c2
from DataTable
group by SomeDimension

в первом случая индекс нужен, во втором - не нужен,
Тут надо смотреть планы выполнения.
У оптимизатора может быть другое мнение.
Там же селективность рулит, он может подумать нелогично.
Тесты нужны.
во втором случае НЕТ поиска по аналитике, и индекс там до одного места дверца
в первом случае - индекс может нужен, может нет, там и правда индекс может помочь, а может быть тоже - до одного места дверца
Ты говорил о БОЛЬШОЙ таблице.
Второй запрос крайне хреновый для большой таблицы.
Место экономишь, а нервы пользователя нет.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / MySQL [закрыт для гостей] / Господа базоёбы, скок сюды, Поиск: Искать сообщения, созданные автором: eNose  
Читали тему (2): Анонимы (1), Yandex Bot 8 мин.
Игнорируют тему (1): erbol
Читали форум (2): Анонимы (1), Yandex Bot 8 мин.
Пользователи онлайн (43): Анонимы (29), s62, Yandex Bot, Буся, Bing Bot, Sparrow 1 мин., IT-Клоп 1 мин., Просто Трёп 2 мин., Antonariy 3 мин., pashtetos1 6 мин., serg_tmb 6 мин., Ветер 7 мин., Кусь 7 мин., Брюквенные годы 9 мин., CerebroSQL 9 мин.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
x
x
Закрыть


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