Когда я смотрел на свою БД в своем проекте, я понял, что самая тяжелая таблица, которую я имею, - это таблица отношений между двумя другими таблицами.
Таблица интеграции, пользователь и знаменитые интеграционные_пользователи (привязывающие пользователяинтеграция).
- Размер таблицы My User: 2011 строки для 819 КБ (данные 395 КБ + индексы 425 КБ)
- Размер таблицы интеграции: 3 строки для 32 КБ (данные 16 КБ + 16 КБ)индексы)
- Размер таблицы «Мои клиенты интеграции»: 2011 строки на 4 МБ (данные 4 МБ + индексы 294 КБ)
Структура этой таблицы клиентов интеграции:
1 "id" "int4" "NO" NULL "nextval('integration_customers_id_seq'::regclass)" "" NULL
2 "user_id" "int4" "NO" NULL NULL "" NULL
3 "integration_id" "int4" "NO" NULL NULL "" NULL
4 "created_at" "timestamp" "NO" NULL NULL "" NULL
5 "updated_at" "timestamp" "NO" NULL NULL "" NULL
6 "parameters" "jsonb" "YES" NULL "'{}'::jsonb" "" NULL
7 "marketing_info_email" "bool" "YES" NULL "true" "" NULL
8 "subscriber_id" "varchar" "YES" NULL NULL "" NULL
И мои индексы:
"integration_customers_pkey" "BTREE" t "id" "" NULL
"index_integration_customers_on_user_id_and_integration_id" "BTREE" t "user_id,integration_id" "" NULL
"index_integration_customers_on_user_id" "BTREE" f "user_id" "" NULL
"index_integration_customers_on_integration_id" "BTREE" f "integration_id" "" NULL
Я просто нахожу разницу в размерах между таблицей отношений и двумя другими, огромными, и мне было интересно, упустил ли я что-то в архитектуре или это было нормально?Если это ненормально, что я сделал не так?Если это нормально, есть ли способ оптимизировать его?
Рад предоставить больше информации, если это необходимо:)
Спасибо всем большое за ваше время!