|
MySQL / Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
В некоторых случаях нормальный человек НИКОГДА не будет делать индекс на ФК Но по этому полю только "дополнительно фильтруют" и никогда не используют это поле для основной фильтрации Следовательно, это поле индексировать не нужно Таким образом на большой таблице мы экономим один большой ненужный индекс И если полей типа "аналитика" несколько - то таким образом мы эконономим несколько раз ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2022, 13:48 |
|
MySQL / Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
... Но по этому полю только "дополнительно фильтруют" и никогда не используют это поле для основной фильтрации Следовательно, это поле индексировать не нужно Таким образом на большой таблице мы экономим один большой ненужный индекс И если полей типа "аналитика" несколько - то таким образом мы эконономим несколько раз Вот эту твою фантазию можно сделать отдельной таблицей. Избавишься разом от фк. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2022, 22:24 |
|
MySQL / Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Вообще такой сайт это скорее отчётная система, тут база денормализованная должна быть. Данные редко добавляются , о запросы всегда. в некоторый случаях денормализация может приводить к значительному возрастанию обьема денормализованных данных, и весь выигрыш, который мы получаем за счет элиминации джойнов и благодаря наличию правильных удобных индексов - мы будем терять на задержках операций ввода-вывода из-за возросшего обхъема данных Больше данных - дороже. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2022, 22:31 |
|
MySQL / Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Вообще такой сайт это скорее отчётная система, тут база денормализованная должна быть. Данные редко добавляются , о запросы всегда. в некоторый случаях денормализация может приводить к значительному возрастанию обьема денормализованных данных, и весь выигрыш, который мы получаем за счет элиминации джойнов и благодаря наличию правильных удобных индексов - мы будем терять на задержках операций ввода-вывода из-за возросшего обхъема данных По этому, прежде чем нести внеочередной бред, посмотри на пропускную способность арендованных сетевых интерфейсов и смд дисков. И сравни их. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2022, 07:21 |
|
MySQL / Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
смд ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2022, 07:49 |
|
MySQL / Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
вообще прикольно конечно тебе говорят про этот сайт, а ты начинаешь нести абстрактный бред типа охрененно умный, но дельного ничего предложить не можешь ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2022, 07:52 |
|
MySQL / Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
который содержит поле... ну, например - "аналитика", которое, разумеется, ссылается на справочник "аналитика" Вот эту твою фантазию можно сделать отдельной таблицей. Избавишься разом от фк. у меня написано "поле, ссылающееся на справочник (отдельную таблиц)" и ты предлаганшь отдельную таблицу сделать отдельной таблицей? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2022, 05:54 |
|
MySQL / Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
... Вот эту твою фантазию можно сделать отдельной таблицей. Избавишься разом от фк. у меня написано "поле, ссылающееся на справочник (отдельную таблиц)" и ты предлаганшь отдельную таблицу сделать отдельной таблицей? есть таблица типа, ну не знаю 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) ) ФК позволяет нам сохранять целочную ссылочность, а индекс там в хрен не упал, т.к. по коду аналитики мы максимум фильтруем/группируем, но никогда не ищем что тут куда выносить то? Да, ты прав. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2022, 06:14 |
|
MySQL / Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Но конкретно в твоем примере проще аналитику засунуть в SomeBigFuckingDataTab :) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2022, 06:20 |
|
MySQL / Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Но конкретно в твоем примере проще аналитику засунуть в SomeBigFuckingDataTab :) В клиенте мы может должны видеть список значений для группировки, не таскать же нго из таблицы с данными, да и на клиенте хранить так себе идея. ( Date datetime, SomeDimension int, SomeMeasure int, AnalyticCode int, Code nvarchar(128) ) Не таскай Экономить место при современной цене дисков чаще всего плохая идея ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2022, 06:54 |
|
MySQL / Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
по коду аналитики мы максимум фильтруем/группируем, но никогда не ищем Без дополнительных ограничений получишь фуллскан. Или ты предлагаешь тащить на клиента и там фильтровать/группировать? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2022, 07:03 |
|
MySQL / Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
Собственно идея то понятна. Съэкономить на индексе, но загрузить клиента. Может упереться в сеть. В общем зависит от множества условий, решение неуниверсальное. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2022, 07:06 |
|
MySQL / Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
по коду аналитики мы максимум фильтруем/группируем, но никогда не ищем Без дополнительных ограничений получишь фуллскан. Или ты предлагаешь тащить на клиента и там фильтровать/группировать? 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 в первом случая индекс нужен, во втором - не нужен, У оптимизатора может быть другое мнение. Там же селективность рулит, он может подумать нелогично. Тесты нужны. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2022, 22:51 |
|
MySQL / Господа базоёбы, скок сюды
|
|||
---|---|---|---|
#18+
... Без дополнительных ограничений получишь фуллскан. Или ты предлагаешь тащить на клиента и там фильтровать/группировать? 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 в первом случая индекс нужен, во втором - не нужен, У оптимизатора может быть другое мнение. Там же селективность рулит, он может подумать нелогично. Тесты нужны. в первом случае - индекс может нужен, может нет, там и правда индекс может помочь, а может быть тоже - до одного места дверца Второй запрос крайне хреновый для большой таблицы. Место экономишь, а нервы пользователя нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2022, 06:51 |
|
|
Start [/forum/search.php?do_search=1&tid=2074&author_mode=wrote_post&author=eNose&start_from=65288]: |
0ms |
get settings: |
1ms |
get forum list: |
6ms |
searching: |
20ms |
get settings: |
7ms |
get forum list: |
4ms |
get topic data: |
3ms |
check forum access: |
1ms |
check topic access: |
1ms |
get forum data: |
1ms |
get found posts: |
39ms |
track hit: |
29ms |
get online users: |
65ms |
check new: |
1ms |
others: | 269ms |
total: | 447ms |
0 / 0 |