powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Оптимизация таблицы при большой интенсивности запросов к ней
9 сообщений из 9, страница 1 из 1
Оптимизация таблицы при большой интенсивности запросов к ней
    #38777240
Electric200
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет все.
Собственно не знал даже как правильно назвать тему.
Опишу ситуацию.
Есть таблица которая содержит порядка 3000 - 5000 записей.
Если говорить о соотношении запросов к ней то : SELECT/INSERT/UPDATE 30%/60%/10%.
По сути, это "Ахиллесова пята" нашей архитектуры БД. И она очень хорошо себя проявила на прошлой версии системы которая была на MariaDB. Точнее еще и есть. Но время позволило создать новую архитектуру на Postgres, и не хочется снова наступать на теже грабли.
Опустим часть с индексами, оптимизированными запросами - поскольку они максимально простые.
Т.е остаются проблемы:
- конкретного доступа на уровне строк
- дисковая система
- мусор (vacuum)
Вариант с MEMORY не подходит по причине использования потокой репликации.

А теперь вопросы:
1. Насколько большая вероятность поймать deadlock или tablelock? И при каких обстоятельствах.
2. В партицировании я не вижу смысла, поскольку количество записей не большое.
3. Можно ли в Postgres вынести конкретную таблицу в отдельную директорию? на SSH например

И как вы бы подошли к организации подобной архитектуры?
Стремаюсь , поскольку в Mysql насмотрелся на висячие "Freeing item" и подобное. Ну там и железо было не ахти.

Заранее всем благодарен за мысли!!)
...
Рейтинг: 0 / 0
Оптимизация таблицы при большой интенсивности запросов к ней
    #38777330
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Electric200А теперь вопросы:
1. Насколько большая вероятность поймать deadlock или tablelock? И при каких обстоятельствах.
2. В партицировании я не вижу смысла, поскольку количество записей не большое.
3. Можно ли в Postgres вынести конкретную таблицу в отдельную директорию? на SSH например


1)tablelock совсем невозможно а deadlock смотря как у вас транзакции устроены (и это не зависит явным образом от интенсивности записи)
2)да мысль правильная
3)да читайте про tablespaces

PS: а как у вас получается что SELECT/INSERT/UPDATE 30%/60%/10% и при этом только 3000-5000 записей??? там черезе секунду уже будет 20.000 при высокой интесивности вставок.

PPS: самое важное это чтобы длинных транзакций на базе у вас не висело при высокой активноси записи (иначе мусор будет быстро копится несмотря на autovacuum).

PPPS: вообще имеет смысл сделать тестовую версию и погонять ее.

--Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
Оптимизация таблицы при большой интенсивности запросов к ней
    #38777347
Electric200
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim Boguk,
Спасибо. С инсертами там погорячился. их вообще очень мало будет и редко.
По поводу
авторсамое важное это чтобы длинных транзакций на базе у вас не висело при высокой активноси записи (иначе мусор будет быстро копится несмотря на autovacuum).


Вот это умная мысль. Т.е запросы которые используют JOIN данное таблицы, лучше вынести на уровень приложения.
...
Рейтинг: 0 / 0
Оптимизация таблицы при большой интенсивности запросов к ней
    #38777380
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Electric200Maxim Boguk,
Спасибо. С инсертами там погорячился. их вообще очень мало будет и редко.
По поводу
авторсамое важное это чтобы длинных транзакций на базе у вас не висело при высокой активноси записи (иначе мусор будет быстро копится несмотря на autovacuum).


Вот это умная мысль. Т.е запросы которые используют JOIN данное таблицы, лучше вынести на уровень приложения.

Я не понял как из моего комментария вы вывели "Т.е запросы которые используют JOIN данное таблицы, лучше вынести на уровень приложения."
Это вообще никак не связанные вещи.
...
Рейтинг: 0 / 0
Оптимизация таблицы при большой интенсивности запросов к ней
    #38777431
Electric200
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim Boguk,
Ну я это понял как:
Есть запрос:
SELECT .....
JOIN "та самая таблица"
JOIN table
JOIN table 1;

Т.е избегать подобных запросов.
...
Рейтинг: 0 / 0
Оптимизация таблицы при большой интенсивности запросов к ней
    #38777514
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Electric200Maxim Boguk,
Ну я это понял как:
Есть запрос:
SELECT .....
JOIN "та самая таблица"
JOIN table
JOIN table 1;

Т.е избегать подобных запросов.

нет вы поняли не правильно...
я имел в виду
begin;
...
ушли курить на 10 минут или на 5 часов
commit;
вот так вот делать не надо...

а собственно сложность запросов никак не связана с этим.
...
Рейтинг: 0 / 0
Оптимизация таблицы при большой интенсивности запросов к ней
    #38777652
Electric200
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim BogukElectric200Maxim Boguk,
Ну я это понял как:
Есть запрос:
SELECT .....
JOIN "та самая таблица"
JOIN table
JOIN table 1;

Т.е избегать подобных запросов.

нет вы поняли не правильно...
я имел в виду
begin;
...
ушли курить на 10 минут или на 5 часов
commit;
вот так вот делать не надо...

а собственно сложность запросов никак не связана с этим.
Так и я о том же. Если вместо "курить" будет запрос минут на 10.
...
Рейтинг: 0 / 0
Оптимизация таблицы при большой интенсивности запросов к ней
    #38777695
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Electric200Maxim Bogukпропущено...


нет вы поняли не правильно...
я имел в виду
begin;
...
ушли курить на 10 минут или на 5 часов
commit;
вот так вот делать не надо...

а собственно сложность запросов никак не связана с этим.
Так и я о том же. Если вместо "курить" будет запрос минут на 10.\

запрос на 10 минут это надо постараться... хотя конечно возможно да.
...
Рейтинг: 0 / 0
Оптимизация таблицы при большой интенсивности запросов к ней
    #38777757
Electric200
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim BogukElectric200пропущено...

Так и я о том же. Если вместо "курить" будет запрос минут на 10.\

запрос на 10 минут это надо постараться... хотя конечно возможно да.
Запрос может и нет, но хранимка легко.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Оптимизация таблицы при большой интенсивности запросов к ней
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]