Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Оптимизация таблицы при большой интенсивности запросов к ней / 9 сообщений из 9, страница 1 из 1
15.10.2014, 13:11:01
    #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
15.10.2014, 13:51:03
    #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
15.10.2014, 14:00:27
    #38777347
Electric200
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация таблицы при большой интенсивности запросов к ней
Maxim Boguk,
Спасибо. С инсертами там погорячился. их вообще очень мало будет и редко.
По поводу
авторсамое важное это чтобы длинных транзакций на базе у вас не висело при высокой активноси записи (иначе мусор будет быстро копится несмотря на autovacuum).


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


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

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

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

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

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

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

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

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

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


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

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

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

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

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


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