Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
вопрос к гуру
|
|||
|---|---|---|---|
|
#18+
Переносится большой проект с MySQL на PostgreSQL. В проекте есть большая таблица, отслеживающая текущие данные. Пишут в неё (до 100 раз в секунду) несколько поставщиков данных. Читают несколько потребителей (эти реже, раз в секунду-две). Таблица автоматом создаётся при старте системы. Записей в ней - до 20000. В MySQL я эту таблицу создавал с атрибутом TYPE=HEAP и все были счастливы. Как мне сделать подобное в PostgreSQL ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2008, 15:07 |
|
||
|
вопрос к гуру
|
|||
|---|---|---|---|
|
#18+
а что такое TYPE=HEAP ? 100 записей в секунду это не много, только добавляйте пачками, не стоит делать commit после каждой записи. Лучше использовать промежуточный файл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2008, 16:25 |
|
||
|
вопрос к гуру
|
|||
|---|---|---|---|
|
#18+
"100 записей в секунду" - наверное 100 инсертов с разных коннектов, имеется ввиду ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2008, 16:30 |
|
||
|
вопрос к гуру
|
|||
|---|---|---|---|
|
#18+
www.find-info.ru `HEAP' tables use hashed indexes and are stored in memory. This makes them very fast, but if MySQL crashes you will lose all data stored in them. `HEAP' is very useful for temporary tables! Очевидно автору поможет только Код: plaintext 1. Как указать что-то такое для одной таблицы - не наю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2008, 16:35 |
|
||
|
вопрос к гуру
|
|||
|---|---|---|---|
|
#18+
Perfy пишет: > В MySQL я эту таблицу создавал с атрибутом TYPE=HEAP и все были счастливы. > Как мне сделать подобное в PostgreSQL ? Кто не знает, что такое type=HEAP - это таблица в памяти. Без транзакций. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2008, 18:32 |
|
||
|
вопрос к гуру
|
|||
|---|---|---|---|
|
#18+
Нашел в пресс-релизе версии 8.3: Heap-Only Tuples (HOT) accelerate space reuse for most UPDATEs and DELETEs Но как я понял этот механизм работает для всех таблиц и не совсем то что мне нужно. Zashibis"100 записей в секунду" - наверное 100 инсертов с разных коннектов, имеется ввиду Даже не инсертов а апдейтов. Коннектов 5-6. 100 это в сумме в пике. А если создать TABLESPACE на рам-диске ? Кто-нибудь пробовал такие извращения ? Что будет после выключения питания ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2008, 20:48 |
|
||
|
вопрос к гуру
|
|||
|---|---|---|---|
|
#18+
Ну можно вынести таблицу через tablespace на диск в памяти. Конечно, когда питание вырубится - все пропадет. Если данные только текущие и устаревают, то можно придумать что-то типа матереализованных-view для такой ситуации - т.е. таблица, например, будет апдейтиться в памяти сразу, а на диске раз в 5 мин. Хотя 100 insert/update в сек это не проблема учитывая версионную архитектуру посгреса. fsync = off и все в порядке. Разумеется на сервер с ИБП и батарейкой в контроллере. Если же fsync = off нежелательно совсем, то все зависит от скорости дисков и RAID-массива... хотябы протестируйте - реально ли у Вас все упрется в диски, и тогда может быть понадобятся танцы с бубном. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2008, 21:57 |
|
||
|
вопрос к гуру
|
|||
|---|---|---|---|
|
#18+
Сейчас протестил на одной из таблиц ~ 10 тысяч update в сек :) - Это чистая скорость локального запроса на 4 SCSI в RAID-10. С клиентскими соединениям будет, конечно, гораздо большее влияние времени создание процесса, выделения памяти, открытия порта и т.д, чем времени выполнения самого запроса. Юзайте пул коннектов, по возможности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2008, 22:02 |
|
||
|
вопрос к гуру
|
|||
|---|---|---|---|
|
#18+
alex_v13Сейчас протестил на одной из таблиц ~ 10 тысяч update в сек :) ух :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2008, 22:30 |
|
||
|
вопрос к гуру
|
|||
|---|---|---|---|
|
#18+
Perfy пишет: > Кто-нибудь пробовал такие извращения ? > Что будет после выключения питания ? А с MySQL HEAP -таблицами что после выключения питания происходит ? Разве не то же самое ? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2008, 16:12 |
|
||
|
вопрос к гуру
|
|||
|---|---|---|---|
|
#18+
MasterZiv А с MySQL HEAP -таблицами что после выключения питания происходит ? Разве не то же самое ? Таблица и данные в ней конечно теряются, но база при этом не рушится. Беспокоит как раз возможность разрушения базы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2008, 16:18 |
|
||
|
вопрос к гуру
|
|||
|---|---|---|---|
|
#18+
Eсть внешние ram-диски с батарейками =) Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2008, 16:21 |
|
||
|
вопрос к гуру
|
|||
|---|---|---|---|
|
#18+
Perfy MasterZiv А с MySQL HEAP -таблицами что после выключения питания происходит ? Разве не то же самое ? Таблица и данные в ней конечно теряются, но база при этом не рушится. Беспокоит как раз возможность разрушения базы. Я написал про систему с материализованием view - основная таблица связанная со схемой БД лежит на обычных дисках, но обновляется оно по тайм-айту из рабочей таблице лежащей на рам-диске - тогда потери данных при умирании рам-дииска будут минимальны, а база будет в безопасности. Хотя и так с базой ничего не случится ничего криминального. Еще раз говорю - прежде чем танцевать с бубном - попробуйте тесты, настройте сервер, настройте сам постгрес, перейдите на работу через пул коннектов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2008, 17:34 |
|
||
|
вопрос к гуру
|
|||
|---|---|---|---|
|
#18+
alex_v13 пишет: > Еще раз говорю - прежде чем танцевать с бубном - попробуйте тесты, > настройте сервер, настройте сам постгрес, перейдите на работу через пул Человеку вроде бы просто нужна быстрая таблица IN-MEMORY. Есть такие в PGSQL ? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2008, 20:06 |
|
||
|
вопрос к гуру
|
|||
|---|---|---|---|
|
#18+
MasterZiv alex_v13 пишет: > Еще раз говорю - прежде чем танцевать с бубном - попробуйте тесты, > настройте сервер, настройте сам постгрес, перейдите на работу через пул Человеку вроде бы просто нужна быстрая таблица IN-MEMORY. Есть такие в PGSQL ? Posted via ActualForum NNTP Server 1.4 Ну если бы были, никто бы не разводил демагогию на 20 постов :) Чего в Постгресе нет, того нет. Можно, конечно, по разным контрибам и расширениям покопаться, но в продакшн там не с чем соваться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2008, 21:02 |
|
||
|
вопрос к гуру
|
|||
|---|---|---|---|
|
#18+
alex_v13 MasterZiv alex_v13 пишет: > Еще раз говорю - прежде чем танцевать с бубном - попробуйте тесты, > настройте сервер, настройте сам постгрес, перейдите на работу через пул Человеку вроде бы просто нужна быстрая таблица IN-MEMORY. Есть такие в PGSQL ? Posted via ActualForum NNTP Server 1.4 Ну если бы были, никто бы не разводил демагогию на 20 постов :) Чего в Постгресе нет, того нет. Можно, конечно, по разным контрибам и расширениям покопаться, но в продакшн там не с чем соваться. На любом скриптовом языке в постгресе можно создать глобальный массив и работать с ним. Если нужны еще и сложные выборки, можно подгрузить модуль sqlite и создать базу в памяти, с которой и работать. На тикле все вышеперечисленное работает, на других языках, наверное, тоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2008, 18:34 |
|
||
|
вопрос к гуру
|
|||
|---|---|---|---|
|
#18+
йа нифига не гуру! MBG alex_v13 MasterZiv alex_v13 пишет: > Еще раз говорю - прежде чем танцевать с бубном - попробуйте тесты, > настройте сервер, настройте сам постгрес, перейдите на работу через пул Человеку вроде бы просто нужна быстрая таблица IN-MEMORY. Есть такие в PGSQL ? Posted via ActualForum NNTP Server 1.4 Ну если бы были, никто бы не разводил демагогию на 20 постов :) Чего в Постгресе нет, того нет. Можно, конечно, по разным контрибам и расширениям покопаться, но в продакшн там не с чем соваться. На любом скриптовом языке в постгресе можно создать глобальный массив и работать с ним. Если нужны еще и сложные выборки, можно подгрузить модуль sqlite и создать базу в памяти, с которой и работать. На тикле все вышеперечисленное работает, на других языках, наверное, тоже. ой! а что, проще никак? мы обходились как-то таблспейсами самого постгреса в рам-диске . оно конечно страшно, но, - когда висит на серве с мега-супа бесперебойниками, там и проблем таких быть не могет(в смысле, не возникало пока)! >Человеку вроде бы просто нужна быстрая таблица IN-MEMORY. Есть такие в PGSQL? есть таблспейсы в раме, а дальше вообще-то пофиг))) в смысле, реализовать мона. но - триггерами... написать триггеры для настоящего спеца(которосму не за оракл, не за м$ платят, а за постгрес) вроде не проблема;) вот токо со спецами проблема... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2008, 08:26 |
|
||
|
вопрос к гуру
|
|||
|---|---|---|---|
|
#18+
А какова побудительная причина перехода с Мускуля на Постгрес ? Если не секрет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2008, 08:38 |
|
||
|
вопрос к гуру
|
|||
|---|---|---|---|
|
#18+
ovaxА какова побудительная причина перехода с Мускуля на Постгрес ? Если не секрет... размер таблиц и структура данных, я так думаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2008, 08:48 |
|
||
|
вопрос к гуру
|
|||
|---|---|---|---|
|
#18+
мимоходяйщий сисадмин ой! а что, проще никак? мы обходились как-то таблспейсами самого постгреса в рам-диске . оно конечно страшно, но, - когда висит на серве с мега-супа бесперебойниками, там и проблем таких быть не могет(в смысле, не возникало пока)! Топикстартер выше сказал, что не хочет различных проблем, могущих возникнуть при проблемах с железом, ФС или самой базой. На неадминистрируемом сервере ваше решение - самоубийство. А массив или эскулайт база в памяти создаются в несколько строк кода, куда уж проще, притом, что это решение гарантированно работает и работает быстро. Кстати, есть еще вариант - сбрасывать поступающие данные в файл, который потом загружать командой COPY. Попробуйте, удивитесь скорости работы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2008, 13:27 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=35179395&tid=2004544]: |
0ms |
get settings: |
8ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
80ms |
get tp. blocked users: |
1ms |
| others: | 204ms |
| total: | 368ms |

| 0 / 0 |
