Tha sinn air structar ar stòr-dàta PostgreSQL a dhealbhadh gu soirbheachail airson conaltradh a stòradh, tha bliadhna air a dhol seachad, tha luchd-cleachdaidh gu gnìomhach ga lìonadh, agus a-nis tha e ann. milleanan de chlàran, agus... thòisich rudeigin a' fàs nas slaodaiche.
Rubha 'S e sin Mar a bhios meud a’ bhùird a’ fàs, mar sin tha “doimhneachd” nan clàran-amais. - ged a tha e logarithmically. Ach thar ùine bheir seo air an fhrithealaiche na h-aon ghnìomhan leughaidh/sgrìobhaidh a dhèanamh pròiseas iomadh uair barrachd dhuilleagan dàtana aig an toiseach.
Seo far a bheil e a’ tighinn gu teasairginn roinn.
Thoir an aire dhomh nach eil sinn a’ bruidhinn mu dheidhinn sharding, is e sin, a’ sgaoileadh dàta eadar diofar stòran-dàta no frithealaichean. Leis gu bheil eadhon an dàta a roinn a-steach grunnan frithealaichean, chan fhaigh thu cuidhteas duilgheadas clàran-amais “swelling” thar ùine. Tha e soilleir, mas urrainn dhut seirbheisiche ùr a chuir an gnìomh a h-uile latha, nach bi na duilgheadasan agad idir ann am plèana stòr-dàta sònraichte.
Beachdaichidh sinn chan ann air sgriobtaichean sònraichte airson a bhith a’ buileachadh sgaradh “ann am bathar-cruaidh”, ach an dòigh-obrach fhèin - dè agus ciamar a bu chòir a bhith “air a ghearradh ann an sliseagan”, agus dè a dh’ adhbhraicheas a leithid de mhiann.
Bun-bheachd
Mìnichidh sinn ar n-amas a-rithist: tha sinn airson dèanamh cinnteach gum fuirich an-diugh, a-màireach, agus ann am bliadhna, an ìre de dhàta a leugh PostgreSQL rè gnìomhachd leughaidh / sgrìobhaidh sam bith timcheall air an aon rud.
Airson sam bith dàta cruinnichte a rèir eachdraidh (teachdaireachdan, sgrìobhainnean, logaichean, tasglannan, ...) tha an roghainn nàdarra mar iuchair sgaradh ceann-latha/àm tachartais. Anns a 'chùis againn, tha tachartas mar seo mionaid airson an teachdaireachd a chuir.
Thoir an aire gu bheil luchd-cleachdaidh cha mhòr an-còmhnaidh obraich a-mhàin leis an fheadhainn “as ùire”. dàta mar sin - bidh iad a’ leughadh na teachdaireachdan as ùire, a’ dèanamh mion-sgrùdadh air na logaichean as ùire,... Chan e, gu dearbh, is urrainn dhaibh gluasad nas fhaide air ais ann an tìm, ach is ann ainneamh a nì iad seo.
Bho na cuingeadan sin tha e soilleir gur e am fuasgladh teachdaireachd as fheàrr a bhiodh ann earrannan "làitheil". - às deidh a h-uile càil, bidh an neach-cleachdaidh againn cha mhòr an-còmhnaidh a ’leughadh na thàinig thuige“ an-diugh ”no“ an-dè ”.
Ma tha sinn a 'sgrìobhadh agus a' leughadh cha mhòr a-mhàin ann an aon earrann tron latha, tha seo cuideachd a 'toirt dhuinn cleachdadh nas èifeachdaiche de chuimhne agus diosc - leis gu bheil a h-uile clàr-amais earrann gu furasta a’ freagairt air an RAM, an taca ris an fheadhainn “mòr is geir” air feadh a’ bhùird.
ceum air cheum
San fharsaingeachd, tha a h-uile dad a chaidh a ràdh gu h-àrd coltach ri aon prothaid leantainneach. Agus tha e comasach a choileanadh, ach airson seo feumaidh sinn feuchainn gu cruaidh - oir tha an co-dhùnadh sgaradh a dhèanamh eadar aon de na buidhnean a’ leantainn gu feum air “faicinn” na tha co-cheangailte.
Teachdaireachd, a feartan agus ro-mheasaidhean
Leis gun do chuir sinn romhainn teachdaireachdan a ghearradh a rèir cinn-latha, tha e ciallach cuideachd na buidhnean-seilbh a tha an urra riutha a roinn (faidhlichean ceangailte, liosta de luchd-faighinn), agus cuideachd a rèir ceann-latha na teachdaireachd.
Leis gur e aon de na gnìomhan àbhaisteach againn a bhith a’ coimhead gu mionaideach air clàran teachdaireachd (gun leughadh, a’ tighinn a-steach, uile), tha e reusanta cuideachd “an tarraing a-steach” gu bhith gan sgaradh a rèir cinn-latha teachdaireachd.
Cuiridh sinn an iuchair sgaradh (ceann-latha teachdaireachd) ris a h-uile clàr: luchd-faighinn, faidhle, clàran. Chan fheum thu a chuir ris an teachdaireachd fhèin, ach cleachd an DateTime a tha ann mu thràth.
ceangal a-nall
Leis nach eil ann ach aon chuspair airson grunn theachdaireachdan, chan eil dòigh ann air a “ghearradh” san aon mhodail; feumaidh tu a bhith an urra ri rudeigin eile. Anns a 'chùis againn tha e air leth freagarrach ceann-latha a’ chiad teachdaireachd ann an conaltradh — 's e sin, àm cruthachaidh, gu dearbh, a' chuspair.
Cuir an iuchair sgaradh (ceann-latha cuspair) ris a h-uile clàr: cuspair, com-pàirtiche.
Ach a-nis tha dà dhuilgheadas againn aig an aon àm:
Dè an earrann air am bu chòir dhomh coimhead airson teachdaireachdan air a’ chuspair?
Dè an earrann anns am bu chòir dhomh coimhead airson a’ chuspair bhon teachdaireachd?
Faodaidh sinn, gu dearbh, leantainn air adhart a’ sgrùdadh anns a h-uile roinn, ach bidh seo gu math brònach agus nì sinn dearmad air na buannachdan againn uile. Mar sin, gus faighinn a-mach càite dìreach a choimheadas sinn, nì sinn ceanglaichean loidsigeach / molaidhean gu earrannan:
cuiridh sinn a-steach an teachdaireachd raon cuspair ceann-latha
cuireamaid ris a' chuspair ceann-latha teachdaireachd air a shuidheachadh an conaltradh seo (faodaidh clàr air leth a bhith ann, neo sreath de chinn-latha)
Leis nach bi mòran atharrachaidhean air an liosta de chinn-latha teachdaireachd airson gach conaltradh fa leth (às deidh a h-uile càil, bidh cha mhòr a h-uile teachdaireachd a ’tuiteam air làithean 1-2 ri thaobh), cuiridh mi fòcas air an roghainn seo.
Gu h-iomlan, ghabh structar an stòr-dàta againn an cruth a leanas, a’ toirt aire do sgaradh:
Clàran: RU, ma tha an aghaidh na h-aibideil Cyrillic ann an ainmean chlàran/achaidhean, tha e nas fheàrr gun a bhith a’ coimhead
-- секции по дате сообщения
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
);
Sàbhail sgillinn gu math
Uill, dè mura cleachd sinn roghainn roinneadh clasaigeach stèidhichte air cuairteachadh luachan achaidh (tro luchd-brosnachaidh agus dìleab no PÀIRT BY), agus “le làimh” aig ìre an tagraidh, chì thu gu bheil luach na h-iuchrach dealachaidh air a stòradh mar-thà ann an ainm a’ bhùird fhèin.
Mar sin ma tha thu mar sin A bheil dragh mòr ort mun ìre de dhàta a tha air a stòradh?, an uairsin gheibh thu cuidhteas na raointean “a bharrachd” sin agus seòladh gu clàran sònraichte. Fìor, feumar a h-uile taghadh bho ghrunn earrannan sa chùis seo a ghluasad gu taobh an tagraidh.