Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Сколько занимает места таблица
|
|||
|---|---|---|---|
|
#18+
Есть у меня две таблички содержащие по одному столбцу с одинаковым наименованием, без index и constraint, но разным типом данных: smallint, boolean, содержащие по 7000000 тестовых записей 0/1. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Вывод и интересующих таблиц: Код: plaintext 1. 2. 3. 4. Код: plsql 1. 2. 3. 4. Вывод: Код: plaintext 1. 2. 3. Соответственно интересует разница в показаниях, и есть ли смысл использовать boolean тип, с точки зрения занимаемого места. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2017, 23:25 |
|
||
|
Сколько занимает места таблица
|
|||
|---|---|---|---|
|
#18+
Код: plsql 1. du -h /var/lib/pgsql/9.6/data/base/2624085/2627534 Код: plaintext Код: plsql 1. du -h /var/lib/pgsql/9.6/data/base/2624085/2627535 Код: plaintext Печально, получается от boolean никакого толку, с точки зрения хранения :(. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2017, 23:39 |
|
||
|
Сколько занимает места таблица
|
|||
|---|---|---|---|
|
#18+
При этом: Код: plsql 1. Код: plaintext 1. 2. Код: plsql 1. Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2017, 23:47 |
|
||
|
Сколько занимает места таблица
|
|||
|---|---|---|---|
|
#18+
Bsplesk, Надо смотреть полностью структуру таблицы. Есть фокусы выравнивания данных в памяти (и паровозиком в датафайлах на диске) когда одна и та же таблица, но с разным порядком полей занимает разное место. Например вот тут затрагивался вопрос https://pgday.ru/ru/2016/papers/62 с 34 слайда. Но вменяемого полного описания механики мне нигде не попадалось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2017, 23:55 |
|
||
|
Сколько занимает места таблица
|
|||
|---|---|---|---|
|
#18+
Пасиб "читну на ночь", но походу придется купить "Man_ы" .... эх. а не хотелось. Для прикола создал 3 аналогичную табличку с типом INTEGER, заполнил (причем не 0/1, а диапазоном), посмотрел на размер, он равен типам BOOLEAN/SMALLINT, хотя казалось бы .... Код: plsql 1. Код: plaintext 1. 2. Код: plsql 1. 2. 3. -- место Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2017, 00:15 |
|
||
|
Сколько занимает места таблица
|
|||
|---|---|---|---|
|
#18+
и c bigint, аналогичный размер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2017, 00:30 |
|
||
|
Сколько занимает места таблица
|
|||
|---|---|---|---|
|
#18+
повторил, создал по 3 тестовых столбца, на integer/bigint разница появилась, вообщем интересно postgres скидывает/нарезает на диск данные. Видимо учитывает настройки дисковой подсистемы. Интересно нет ли какого нибудь tool, который бы позволял просматривать/тюнить БД под конкретные данные, или подсказывал какие параметры файловой системы оптимальны для конкретных данных..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2017, 00:49 |
|
||
|
Сколько занимает места таблица
|
|||
|---|---|---|---|
|
#18+
Bsplesk, настройки ФС не учитывает. Выравнивание структур в памяти - учитывает и добавляет пустые блоки для соблюдения этого выравнивания. Повторюсь, именно это и есть причина наблюдаемого поведения. Но нормального описания что как и куда выравнивается мне не попадалось. Обратите внимание на typalign в pg_type ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2017, 00:59 |
|
||
|
Сколько занимает места таблица
|
|||
|---|---|---|---|
|
#18+
MelkijBsplesk, настройки ФС не учитывает. Выравнивание структур в памяти - учитывает и добавляет пустые блоки для соблюдения этого выравнивания. Повторюсь, именно это и есть причина наблюдаемого поведения. Но нормального описания что как и куда выравнивается мне не попадалось. Обратите внимание на typalign в pg_type Все пошел читать ... :) на ночь сказку. Для примера попробовал массивы и jsonb, jsonb - ожидаемо медленно+большой объем, а вот массив разочаровал, думал он оптимально сложит, а нет ... или "паразитные" много занимают. но и insert у массива медленней обычных столбцов. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2017, 01:27 |
|
||
|
Сколько занимает места таблица
|
|||
|---|---|---|---|
|
#18+
C jsonb не верно в сравнении с массивом, ибо с ключами: Код: plsql 1. 2. 3. 4. 5. 6. Без ключей лучше: Код: plsql 1. 2. 3. 4. 5. 6. Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2017, 01:39 |
|
||
|
Сколько занимает места таблица
|
|||
|---|---|---|---|
|
#18+
Bsplesk, у массива есть константный заголовок, на память что-то около 16 байт. Поэтому одно значения в массиве хранить нецелесообразно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2017, 12:21 |
|
||
|
Сколько занимает места таблица
|
|||
|---|---|---|---|
|
#18+
Bspleskповторил, создал по 3 тестовых столбца, на integer/bigint разница появилась, вообщем интересно postgres скидывает/нарезает на диск данные. Видимо учитывает настройки дисковой подсистемы. Интересно нет ли какого нибудь tool, который бы позволял просматривать/тюнить БД под конкретные данные, или подсказывал какие параметры файловой системы оптимальны для конкретных данных..... Это не по файловую систему а про выравнивание структур на диске и в памяти. Вам сюда вот: https://www.postgresql.org/docs/10/static/storage-page-layout.html 23 байта заголовок (округленный до MAXALIGN т.е. обычно 24 байта) и далее данные таблицы но тоже суммарно до MAXALIGN по длине (т.е. не каждый по отдельности) округлены, т.е. до до 8 байт в общем случае обычно. То есть минимум что может занимать строка - 32 байта... и что там boolean что bigint - размер таблицы будет одинаковый. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2017, 13:10 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=39563235&tid=1996061]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
67ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
| others: | 297ms |
| total: | 457ms |

| 0 / 0 |
