|
Как можно такое организовать наиболее оптимальным образом?
|
|||
---|---|---|---|
#18+
есть довольно большая таблица за несколько лет там накопилось порядка полутора миллиардов записей. занимает это больше 100 Гб, плюс индексы. упрощенно говоря, данные в таблице нужны, за исключением одного поля Char (15 byte), содержимое этого поля вообще мало кому интересно, а если и интересно, то только первые пару месяцев "для разборок". потом оно обращается в мусор. сама таблица партицирована(по дате, месячными кусками). вопрос вот чем, как эффективно сделать очистку поля и места которое оно занимает. мой осн разума родил пока такие варианты. 1. сделать поле типом Varchar, по прошествии трех месяцев содержимое партиции перезаписываю в отдельную таблицу с удалением значения поля. партицию дропаю, данные обратно. индексы все local будет довольно быстро. 2. поэкспериментировать с полями типа Clob, не уверен, что тут можно чего то полезного сделать. 3. ничего не делать и забить на порядка 20% бесполезно занятого места в этой таблице. как бы вы сделали? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 12:25 |
|
Как можно такое организовать наиболее оптимальным образом?
|
|||
---|---|---|---|
#18+
Надфиль очистку поля ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 12:38 |
|
Как можно такое организовать наиболее оптимальным образом?
|
|||
---|---|---|---|
#18+
Elic Надфиль очистку поля Наверно это правда. Еще вариант. хранить рядом дубль таблицы с этим полем, и безжалостно дропать партиции через 2-3 месяца. Дело в том что ряд запросов поднимают очень много данных из этих таблиц. сократив размер записи быстрей будем хранить нужное. Ну я надеюсь. Уже был вынужден сделать пару таблиц с выжимками сгруппированными по некоторым полям из этой таблицы. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 12:49 |
|
Как можно такое организовать наиболее оптимальным образом?
|
|||
---|---|---|---|
#18+
Надфиль Еще вариант. хранить рядом дубль таблицы с этим полем, и безжалостно дропать партиции через 2-3 месяца Если по старым данным запросов оперативных нет, архивировать старые данные и дропать партиции. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 12:52 |
|
Как можно такое организовать наиболее оптимальным образом?
|
|||
---|---|---|---|
#18+
Надфилькак бы вы сделали? Вариант 3 однозначно. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 13:49 |
|
Как можно такое организовать наиболее оптимальным образом?
|
|||
---|---|---|---|
#18+
Надфиль 1. сделать поле типом Varchar менять придется для таблицы, как бы прикладнуха не поплыла после смены типа если "для разборок" тип не критичен, я б помаленько (ночью/выходные) обнулял поле начиная с последней партиции зи 20% імхо немало ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 14:20 |
|
Как можно такое организовать наиболее оптимальным образом?
|
|||
---|---|---|---|
#18+
[quot Stax#22078366 менять придется для таблицы, как бы прикладнуха не поплыла после смены типа [/quot] пишет в таблицу PHP там помоему пофиг, что за тип. смотрят пара несильно важных окошек на делфи. и отчеты на фастрепорте. модификация не будет ограничена этим полем. удалю еще как минимум 3 бесполезных. зачем то по традиции разраб вставил туда ИД, дату создания записи, и ид юзера создавшего. думаю чтобы там еще удалить. так что экономия на размере записи будет куда существенней.... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 14:27 |
|
Как можно такое организовать наиболее оптимальным образом?
|
|||
---|---|---|---|
#18+
Stax20% імхо немало Если 15 байт составляют 20% таблицы, то у аффтара что-то совсем плохо с арифметикой. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 14:34 |
|
Как можно такое организовать наиболее оптимальным образом?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Stax20% імхо немало Если 15 байт составляют 20% таблицы, то у аффтара что-то совсем плохо с арифметикой. Если в таблице 5 полей и каждое поле по 15 байт, то все сходится. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 14:57 |
|
Как можно такое организовать наиболее оптимальным образом?
|
|||
---|---|---|---|
#18+
efendiвсе сходится. Да, пардон, таки сходится. Но вряд ли база у него на ноутбуке, где уменьшение таблицы на 20Гб способно дать заметный выигрыш. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 15:04 |
|
Как можно такое организовать наиболее оптимальным образом?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Если 15 байт составляют 20% таблицы, то у аффтара что-то совсем плохо с арифметикой. у таблицы,по данным статистики, AVG_ROW_LEN 73, нулов в этом поле практически нет. Char, если мне не изменяет склероз, дополняется до полной длины пробелами. значит 15 байт 15/73*100 чуть больше 20. полей больше 5. там в основном варчары и нумберы. с нулами. да и варчары не длинные(хранятся) в среднем ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 15:05 |
|
Как можно такое организовать наиболее оптимальным образом?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov [ уменьшение таблицы на 20Гб способно дать заметный выигрыш. довольно мерзкая аналитика, плюс о ней никто не подумал, когда делали таблицу, да и росла она тогда на 10 млн в год) это счас на 50 млн в месяц. и как я уже писал это не единственное поле которое хочу подвергнуть экзекуции. в итоге запись, надеюсь, будет вдвое короче. чтений уж точно будет меньше. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 16:04 |
|
Как можно такое организовать наиболее оптимальным образом?
|
|||
---|---|---|---|
#18+
Надфильчтений уж точно будет меньше. А сколько чтений из неё сейчас? Максимум, что ты можешь получить это те самые 20% в идеальном случае, а реально вряд ли больше 10%, поскольку страницы вряд ли заполнены полностью и полностью же читаются. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2020, 16:12 |
|
|
start [/forum/topic.php?fid=52&msg=39925802&tid=1881567]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 148ms |
0 / 0 |