Π‘Π” мСссСндТСра (Ρ‡.2): сСкционируСм Β«Π½Π°ΠΆΠΈΠ²ΡƒΡŽΒ»

ΠœΡ‹ ΡƒΠ΄Π°Ρ‡Π½ΠΎ спроСктировали структуру нашСй PostgreSQL-Π±Π°Π·Ρ‹ для хранСния пСрСписки, ΠΏΡ€ΠΎΡˆΠ΅Π» Π³ΠΎΠ΄, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ Π΅Π΅ Π½Π°ΠΏΠΎΠ»Π½ΡΡŽΡ‚, Π²ΠΎΡ‚ Π² Π½Π΅ΠΉ ΡƒΠΆΠ΅ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹ записСй, и… Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ всС Π½Π°Ρ‡Π°Π»ΠΎ ΠΏΠΎΠ΄Ρ‚ΠΎΡ€ΠΌΠ°ΠΆΠΈΠ²Π°Ρ‚ΡŒ.

Π‘Π” мСссСндТСра (Ρ‡.2): сСкционируСм «Π½Π°ΠΆΠΈΠ²ΡƒΡŽ»
Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ с ростом объСма Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ растСт ΠΈ Β«Π³Π»ΡƒΠ±ΠΈΠ½Π°Β» индСксов β€” Ρ…ΠΎΡ‚ΡŒ ΠΈ логарифмичСски. Но со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ это заставляСт сСрвСр для выполнСния Ρ‚Π΅Ρ… ΠΆΠ΅ Π·Π°Π΄Π°Ρ‡ чтСния/записи ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π² Ρ€Π°Π·Ρ‹ большС страниц Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Π΅ΠΌ Π² Π½Π°Ρ‡Π°Π»Π΅.

Π’ΠΎΡ‚ Ρ‚ΡƒΡ‚ Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΠΈ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ сСкционированиС.

Π—Π°ΠΌΠ΅Ρ‡Ρƒ, Ρ‡Ρ‚ΠΎ Ρ€Π΅Ρ‡ΡŒ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ Π½Π΅ ΠΎ ΡˆΠ°Ρ€Π΄ΠΈΠ½Π³Π΅, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ распрСдСлСнии Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Π±Π°Π·Π°ΠΌΠΈ ΠΈΠ»ΠΈ сСрвСрами. ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ, Π΄Π°ΠΆΠ΅ Ρ€Π°Π·Π΄Π΅Π»ΠΈΠ² Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° нСсколько сСрвСров, Π²Ρ‹ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΈΠ·Π±Π°Π²ΠΈΡ‚Π΅ΡΡŒ ΠΎΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ «распухания» индСксов со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ. ΠŸΠΎΠ½ΡΡ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ссли Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ сСбС ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ дСнь Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π² строй Π½ΠΎΠ²Ρ‹ΠΉ сСрвСр, Ρ‚ΠΎ ваши ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π±ΡƒΠ΄ΡƒΡ‚ Π»Π΅ΠΆΠ°Ρ‚ΡŒ ΡƒΠΆΠ΅ совсСм Π½Π΅ плоскости ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π‘Π”.

ΠœΡ‹ ΠΆΠ΅ рассмотрим Π½Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ скрипты для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ сСкционирования Β«Π² ΠΆΠ΅Π»Π΅Π·Π΅Β», Π° сам ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ β€” Ρ‡Ρ‚ΠΎ ΠΈ ΠΊΠ°ΠΊ стоит Β«ΠΏΠΎΡ€Π΅Π·Π°Ρ‚ΡŒ Π½Π° дольки», ΠΈ ΠΊ Ρ‡Π΅ΠΌΡƒ Ρ‚Π°ΠΊΠΎΠ΅ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚.

ΠšΠΎΠ½Ρ†Π΅ΠΏΡ‚

Π•Ρ‰Π΅ Ρ€Π°Π· ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ Π½Π°ΡˆΡƒ Ρ†Π΅Π»ΡŒ: ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈ сСгодня, ΠΈ Π·Π°Π²Ρ‚Ρ€Π°, ΠΈ Ρ‡Π΅Ρ€Π΅Π· Π³ΠΎΠ΄ количСство Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹Ρ… PostgreSQL Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ любой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ чтСния/записи ΠΎΡΡ‚Π°Π²Π°Π»ΠΎΡΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅.

Для Π»ΡŽΠ±Ρ‹Ρ… хронологичСски Π½Π°ΠΊΠ°ΠΏΠ»ΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… (сообщСния, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, Π»ΠΎΠ³ΠΈ, Π°Ρ€Ρ…ΠΈΠ²Ρ‹, …) СстСствСнным Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ Π² качСствС ΠΊΠ»ΡŽΡ‡Π° сСкционирования являСтся Π΄Π°Ρ‚Π°/врСмя события. Π’ нашСм случаС Ρ‚Π°ΠΊΠΈΠΌ событиСм являСтся ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ сообщСния.

Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ практичСски всСгда Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с «послСдними» Ρ‚Π°ΠΊΠΈΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ β€” Ρ‡ΠΈΡ‚Π°ΡŽΡ‚ послСдниС сообщСния, Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ послСдниС Π»ΠΎΠ³ΠΈ,… НСт, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΠ»ΠΈΡΡ‚Π°Ρ‚ΡŒ ΠΈ дальшС Π½Π°Π·Π°Π΄ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π΅Π»Π°ΡŽΡ‚ это ΠΎΡ‡Π΅Π½ΡŒ Ρ€Π΅Π΄ΠΊΠΎ.

Из этих ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ становится ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ для сообщСний Π±ΡƒΠ΄ΡƒΡ‚ «посуточныС» сСкции β€” вСдь ΠΏΠΎΡ‡Ρ‚ΠΈ всСгда наш ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΡˆΠ»ΠΎ Π΅ΠΌΡƒ «сСгодня» ΠΈΠ»ΠΈ Β«Π²Ρ‡Π΅Ρ€Π°Β».

Если ΠΌΡ‹ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ дня пишСм ΠΈ Ρ‡ΠΈΡ‚Π°Π΅ΠΌ практичСски Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΎΠ΄Π½Ρƒ ΡΠ΅ΠΊΡ†ΠΈΡŽ, Ρ‚ΠΎ это Π΄Π°Π΅Ρ‚ Π½Π°ΠΌ Π΅Ρ‰Π΅ ΠΈ Π±ΠΎΠ»Π΅Π΅ эффСктивноС использованиС памяти ΠΈ диска β€” ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ всС индСксы сСкции Π»Π΅Π³ΠΊΠΎ ΡƒΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²ΠΊΡƒ, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Β«Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΈ ΠΆΠΈΡ€Π½Ρ‹Ρ…Β» ΠΏΠΎ всСй Ρ‚Π°Π±Π»ΠΈΡ†Π΅.

step-by-step

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, всС сказанноС Π²Ρ‹ΡˆΠ΅ Π·Π²ΡƒΡ‡ΠΈΡ‚ ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ сплошной ΠΏΡ€ΠΎΡ„ΠΈΡ‚. И ΠΎΠ½ достиТим, Π½ΠΎ Ρ€Π°Π΄ΠΈ этого Π½Π°ΠΌ придСтся Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΡΡ‚Π°Ρ€Π°Ρ‚ΡŒΡΡ β€” ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈΠ· сущностСй ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ нСобходимости Β«Ρ€Π°ΡΠΏΠΈΠ»ΠΈΠ²Π°Ρ‚ΡŒΒ» ΠΈ связанныС с Π½Π΅ΠΉ.

Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅, Π΅Π³ΠΎ свойства ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ†ΠΈΠΈ

Π Π°Π· ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΏΠΎΡ€Π΅Π·Π°Ρ‚ΡŒ сообщСния ΠΏΠΎ Π΄Π°Ρ‚Π°ΠΌ, Ρ‚ΠΎ ΠΈ зависимыС ΠΎΡ‚ Π½ΠΈΡ… сущности-свойства (ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, список адрСсатов) Ρ€Π°Π·ΡƒΠΌΠ½ΠΎ Ρ‚ΠΎΠΆΠ΅ Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΈ Ρ‚ΠΎΠΆΠ΅ ΠΏΠΎ Π΄Π°Ρ‚Π΅ сообщСния.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… Π½Π°ΡˆΠΈΡ… Π·Π°Π΄Π°Ρ‡ являСтся ΠΊΠ°ΠΊ Ρ€Π°Π· просмотр рССстров сообщСний (Π½Π΅ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Π½Ρ‹Π΅, входящиС, всС), Ρ‚ΠΎ ΠΈΡ… Ρ‚ΠΎΠΆΠ΅ Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Β«Π²Ρ‚ΡΠ½ΡƒΡ‚ΡŒΒ» Π² сСкционированиС ΠΏΠΎ Π΄Π°Ρ‚Π°ΠΌ сообщСний.

Π‘Π” мСссСндТСра (Ρ‡.2): сСкционируСм «Π½Π°ΠΆΠΈΠ²ΡƒΡŽ»

ДобавляСм ΠΊΠ»ΡŽΡ‡ сСкционирования (Π΄Π°Ρ‚Ρƒ сообщСния) Π²ΠΎ всС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹: адрСсаты, Ρ„Π°ΠΉΠ», рССстры. Π’ само сообщСниС ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ, Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ ДатаВрСмя.

Π’Π΅ΠΌΡ‹

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ‚Π΅ΠΌΠ° ΠΎΠ΄Π½Π° Π½Π° нСсколько сообщСний, Ρ‚ΠΎ Π΅Π΅ Β«ΠΏΠΎΡ€Π΅Π·Π°Ρ‚ΡŒΒ» Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡƒΠΆΠ΅ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ получится, Π½Π°Π΄ΠΎ ΠΎΠΏΠΈΡ€Π°Ρ‚ΡŒΡΡ Π½Π° Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. Π’ нашСм случаС идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Π΄Π°Ρ‚Π° ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ сообщСния Π² пСрСпискС β€” Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΠΎΠΌΠ΅Π½Ρ‚ создания, собствСнно, Ρ‚Π΅ΠΌΡ‹.

Π‘Π” мСссСндТСра (Ρ‡.2): сСкционируСм «Π½Π°ΠΆΠΈΠ²ΡƒΡŽ»

ДобавляСм ΠΊΠ»ΡŽΡ‡ сСкционирования (Π΄Π°Ρ‚Ρƒ Ρ‚Π΅ΠΌΡ‹) Π²ΠΎ всС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹: Ρ‚Π΅ΠΌΠ°, участник.

Но Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ сразу Π΄Π²Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹:

  • Π² ΠΊΠ°ΠΊΠΎΠΉ сСкции ΠΈΡΠΊΠ°Ρ‚ΡŒ сообщСния ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅?
  • Π² ΠΊΠ°ΠΊΠΎΠΉ сСкции ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ‚Π΅ΠΌΡƒ ΠΎΡ‚ сообщСния?

МоТно, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΏΠΎ всСм сСкциям, Π½ΠΎ это Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠ΅Ρ‡Π°Π»ΡŒΠ½ΠΎ, ΠΈ свСдСт Π½Π° Π½Π΅Ρ‚ всС наши Π²Ρ‹ΠΈΠ³Ρ€Ρ‹ΡˆΠΈ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π½Π°Ρ‚ΡŒ, Π³Π΄Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ, сдСлаСм логичСскиС ссылки/ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π½Π° сСкции:

  • Π² сообщСнии Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΠΎΠ»Π΅ с Π΄Π°Ρ‚ΠΎΠΉ Ρ‚Π΅ΠΌΡ‹
  • ΠΊ Ρ‚Π΅ΠΌΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½Π°Π±ΠΎΡ€ Π΄Π°Ρ‚ сообщСний этой пСрСписки (ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ, Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈ массивом Π΄Π°Ρ‚)

Π‘Π” мСссСндТСра (Ρ‡.2): сСкционируСм «Π½Π°ΠΆΠΈΠ²ΡƒΡŽ»

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΉ списка Π΄Π°Ρ‚ сообщСний для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ взятой пСрСписки Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ (вСдь ΠΏΠΎΡ‡Ρ‚ΠΈ всС сообщСния ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ Π² 1-2 сосСдних дня), я ΠΎΡΡ‚Π°Π½ΠΎΠ²Π»ΡŽΡΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° Ρ‚Π°ΠΊΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅.

Π˜Ρ‚ΠΎΠ³ΠΎ, структура нашСй Π±Π°Π·Ρ‹ приняла ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ сСкционирования:

Π’Π°Π±Π»ΠΈΡ†Ρ‹ : RU, ΠΏΡ€ΠΈ ΠΎΡ‚Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Π΅ Π² названиях Ρ‚Π°Π±Π»ΠΈΡ†/ΠΏΠΎΠ»Π΅ΠΉ Π»ΡƒΡ‡ΡˆΠ΅ Π½Π΅ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ

-- сСкции ΠΏΠΎ Π΄Π°Ρ‚Π΅ сообщСния
CREATE TABLE "Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅_YYYYMMDD"(
  "Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅"
    uuid
      PRIMARY KEY
, "Π’Π΅ΠΌΠ°"
    uuid
, "Π”Π°Ρ‚Π°Π’Π΅ΠΌΡ‹"
    date
, "Автор"
    uuid
, "ДатаВрСмя" -- ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΊΠ°ΠΊ Π΄Π°Ρ‚Ρƒ
    timestamp
, "ВСкст"
    text
);

CREATE TABLE "АдрСсат_YYYYMMDD"(
  "ДатаБообщСния"
    date
, "Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅"
    uuid
, "ΠŸΠ΅Ρ€ΡΠΎΠ½Π°"
    uuid
, PRIMARY KEY("Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅", "ΠŸΠ΅Ρ€ΡΠΎΠ½Π°")
);

CREATE TABLE "Π€Π°ΠΉΠ»_YYYYMMDD"(
  "ДатаБообщСния"
    date
, "Π€Π°ΠΉΠ»"
    uuid
      PRIMARY KEY
, "Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅"
    uuid
, "BLOB"
    uuid
, "Имя"
    text
);

CREATE TABLE "РССстрБообщСний_YYYYMMDD"(
  "ДатаБообщСния"
    date
, "Π’Π»Π°Π΄Π΅Π»Π΅Ρ†"
    uuid
, "ВипРССстра"
    smallint
, "ДатаВрСмя"
    timestamp
, "Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅"
    uuid
, PRIMARY KEY("Π’Π»Π°Π΄Π΅Π»Π΅Ρ†", "ВипРССстра", "Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅")
);
CREATE INDEX ON "РССстрБообщСний_YYYYMMDD"("Π’Π»Π°Π΄Π΅Π»Π΅Ρ†", "ВипРССстра", "ДатаВрСмя" DESC);

-- сСкции ΠΏΠΎ Π΄Π°Ρ‚Π΅ Ρ‚Π΅ΠΌΡ‹
CREATE TABLE "Π’Π΅ΠΌΠ°_YYYYMMDD"(
  "Π”Π°Ρ‚Π°Π’Π΅ΠΌΡ‹"
    date
, "Π’Π΅ΠΌΠ°"
    uuid
      PRIMARY KEY
, "Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚"
    uuid
, "НазваниС"
    text
);

CREATE TABLE "УчастникВСмы_YYYYMMDD"(
  "Π”Π°Ρ‚Π°Π’Π΅ΠΌΡ‹"
    date
, "Π’Π΅ΠΌΠ°"
    uuid
, "ΠŸΠ΅Ρ€ΡΠΎΠ½Π°"
    uuid
, PRIMARY KEY("Π’Π΅ΠΌΠ°", "ΠŸΠ΅Ρ€ΡΠΎΠ½Π°")
);

CREATE TABLE "Π”Π°Ρ‚Ρ‹Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠΉΠ’Π΅ΠΌΡ‹_YYYYMMDD"(
  "Π”Π°Ρ‚Π°Π’Π΅ΠΌΡ‹"
    date
, "Π’Π΅ΠΌΠ°"
    uuid
      PRIMARY KEY
, "Π”Π°Ρ‚Π°"
    date
);

Π­ΠΊΠΎΠ½ΠΎΠΌΠΈΠΌ ΠΊΠΎΠΏΠ΅Π΅Ρ‡ΠΊΡƒ

Ну, Π° Ссли ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π½Π΅ классичСский Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ сСкционирования Π½Π° основС распрСдСлСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ поля (Ρ‡Π΅Ρ€Π΅Π· Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Ρ‹ ΠΈ наслСдованиС ΠΈΠ»ΠΈ PARTITION BY), Π° Β«Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽΒ» Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ прилоТСния, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π° сСкционирования ΡƒΠΆΠ΅ хранится Π² Π½Π°Π·Π²Π°Π½ΠΈΠΈ самой Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ссли Π²Ρ‹ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ сильно ΠΏΠ΅Ρ€Π΅ΠΆΠΈΠ²Π°Π΅Ρ‚Π΅ Π·Π° объСм Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚ΠΎ ΠΎΡ‚ этих Β«Π»ΠΈΡˆΠ½ΠΈΡ…Β» ΠΏΠΎΠ»Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ адрСсно ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌ. ΠŸΡ€Π°Π²Π΄Π°, всС Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… сСкций Π² этом случаС ΡƒΠΆΠ΅ придСтся вынСсти Π½Π° сторону прилоТСния.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com