|
|
|
Оптимизация индекса
|
|||
|---|---|---|---|
|
#18+
Про скорость индексов понял... вот если бы там все время уходило на поиск в индексе, то да, а так сложно вообще понять на что тратится время, может быть и на индекс, а может на слияние данных? авторНадо! Сервер не настолько умён, чтобы догадаться, что все записи группы содержать одно и то же значение в негруппируемом поле. Как итог - при построении суммарной комбинации полей группировки и отбора получается "разрыв", и индекс используется неэффективно - вместо простого выбора по индексу начинается сканирование значений таблицы. Только я не понимаю, как тогда должен выглядеть запрос ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2015, 13:11:19 |
|
||
|
Оптимизация индекса
|
|||
|---|---|---|---|
|
#18+
"is_deleted" --> "min/max(is_deleted)" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2015, 13:12:50 |
|
||
|
Оптимизация индекса
|
|||
|---|---|---|---|
|
#18+
tanglir"is_deleted" --> "min/max(is_deleted)" Это да ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2015, 13:13:54 |
|
||
|
Оптимизация индекса
|
|||
|---|---|---|---|
|
#18+
Если так подумать, то все даты >= '2015-03-14' как и все даты < '2015-04-13' могут содержать все 12 партишенов. Тогда как заставить работать только с необходимыми? К примеру их высчитать можно, как правило запрос ограничен временным интервалом в 1 месяц (т.е. максимум 2 партишена)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2015, 13:20:42 |
|
||
|
Оптимизация индекса
|
|||
|---|---|---|---|
|
#18+
автор. Pruning can also be applied for tables partitioned on a DATE or DATETIME column when the partitioning expression uses the YEAR() or TO_DAYS() function. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2015, 13:24:45 |
|
||
|
Оптимизация индекса
|
|||
|---|---|---|---|
|
#18+
HettПро скорость индексов понял... вот если бы там все время уходило на поиск в индексе, то да, а так сложно вообще понять на что тратится время, может быть и на индекс, а может на слияние данных? Время тратится на чтение индекса и данных (или только данных), сортировку и группировку данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2015, 13:30:20 |
|
||
|
Оптимизация индекса
|
|||
|---|---|---|---|
|
#18+
Hettили я гоню Концентрируй мысли. В более объёмные собщения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2015, 13:30:47 |
|
||
|
Оптимизация индекса
|
|||
|---|---|---|---|
|
#18+
HettЕсли так подумать, то все даты >= '2015-03-14' как и все даты < '2015-04-13' могут содержать все 12 партишенов. Тогда как заставить работать только с необходимыми? К примеру их высчитать можно, как правило запрос ограничен временным интервалом в 1 месяц (т.е. максимум 2 партишена)? Ну да, предвычисли месяца, за которые будет выборка, и вставь их отдельным условием. Тогда основное условие по датам будет ещё больше ограничивать условие по месяцам, а условие по месяцам будет отрезать ненужные партиции. И тогда у тебя по идее будет не больше 2 или 3 месяцев (если "в центре" диапазона февраль). Интервал тоже можно предвычислять ( и будет лучше ). Но ещё раз -- нужно ли здесь такое партицирование -- большой вопрос. Хотя может быть оно нужно по другим причинам, например -- возможность быстрого удаления данных (обычно это основное). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2015, 13:35:05 |
|
||
|
Оптимизация индекса
|
|||
|---|---|---|---|
|
#18+
Партицирование сделали именно для очистки, а то удаление постоянно сильно фрагментировало да и нагружало. Нашел возможность указывать какие именно партиции следует использовать: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2015, 13:40:21 |
|
||
|
Оптимизация индекса
|
|||
|---|---|---|---|
|
#18+
Hett, сделай ОЛАП куб: -- или самому продумат' пре-агрегацию на просто МыСКЛ таблицах (по мотивам ОЛАП кубов) -- или испол'зоват' всякие Мондрианы или ОпенОЛАП (потянут ли такой об'ем?) -- или переходит' на МС ССАС, ЕССБасе и всякие другие сер'езные штучки-дрючки... (они то потянут, но придется уходит' с оптимизировного под ОЛТП МыСКЛа) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2015, 06:49:06 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38934782&tid=1833301]: |
0ms |
get settings: |
5ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
40ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 195ms |
| total: | 307ms |

| 0 / 0 |
