{"id":55027,"date":"2020-01-10T00:00:00","date_gmt":"2020-01-09T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/bd-messendzhera-ch-2-sektsioniruem-nazhivuyu"},"modified":"2020-02-18T14:03:06","modified_gmt":"2020-02-18T11:03:06","slug":"bd-messendzhera-ch-2-sektsioniruem-nazhivuyu","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/bd-messendzhera-ch-2-sektsioniruem-nazhivuyu","title":{"rendered":"Messengeri andmebaas (osa 2): jaotame \u201ereaalajas\u201c","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Meie PostgreSQL andmebaasi struktuur on edukalt projekteeritud suhtluse salvestamiseks. Aasta on m\u00f6\u00f6dunud, ja kasutajad t\u00e4idavad seda aktiivselt, seal on juba <b>miljoneid kirjeid<\/b>, ja\u2026 midagi on hakanud veidi aeglaselt t\u00f6\u00f6tama.<\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/483176\/\">Osa 1: projekteerime andmebaasi karkassi<\/a><\/noindex><\/li>\n<li>Osa 2: sektsioneerime \u00abelus\u00bb<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Messengeri andmebaas (osa 2): jaotame \u201ereaalajas\u201c\" src=\"\/wp-content\/uploads\/2020\/01\/7830da046d9c472af15330e42cbb05e0.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nAsi on selles, et <b>koos tabeli mahu suurenemisega suureneb ka indeksite \u00abs\u00fcgavus\u00bb<\/b> \u2014 kuigi logaritmiliselt. Kuid aja jooksul n\u00f5uab see serverilt sama lugemise\/kirjutamise \u00fclesande t\u00e4itmiseks <i>oluliselt rohkem andmelehti<\/i>, kui alguses.<\/p>\n<p>Siinkohal tuleb appi <b>sektsioneerimine<\/b>.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nTahan m\u00e4rkida, et teema ei ole sharding, see t\u00e4hendab andmete jaotamine erinevate andmebaaside v\u00f5i serverite vahel. Sest isegi kui jagate andmed <b>mitu<\/b> serverite vahel, ei p\u00e4\u00e4se te probleemi \u00abindeksite paisumise\u00bb eest aja jooksul. Selge on, et kui saate endale lubada iga p\u00e4ev uue serveri kasutusele v\u00f5tta, siis on teie probleemid juba hoopis teised kui konkreetse andmebaasi tasandil.<\/p>\n<p>Keskendume mitte konkreetsetele skriptidele sektsioneerimise rakendamiseks \u00abrauda\u00bb, vaid l\u00e4henemisele \u2014 mida ja kuidas tuleks \u00abt\u00fckeldada\u00bb, ja milleni selline soov viib.<\/p>\n<h2>Kontseptsioon<\/h2>\n<p>\nM\u00e4\u00e4ratleme meie eesm\u00e4rgi uuesti: tahame tagada, et nii t\u00e4na, homme kui ka aasta p\u00e4rast j\u00e4\u00e4b PostgreSQL andmete loetavus igasuguste lugemise\/kirjutamise operatsioonide puhul enam-v\u00e4hem samaks.<\/p>\n<p>Igasuguste <b>ajalooliselt kogutud andmete<\/b> (\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f, \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u044b, \u043b\u043e\u0433\u0438, \u0430\u0440\u0445\u0438\u0432\u044b, &#8230;) \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u0432\u044b\u0431\u043e\u0440\u043e\u043c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043a\u043b\u044e\u0447\u0430 \u0441\u0435\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f <b>s\u00fcndmuse kuup\u00e4ev\/aeg<\/b>. Meie puhul on selliseks s\u00fcndmuseks <u>teate saatmise hetk<\/u>.<\/p>\n<p>Tuleb m\u00e4rkida, et kasutajad t\u00f6\u00f6tavad peaaegu alati ainult \u201eviimastega\u201d <b>sellistest andmetest \u2014 nad lugesid viimaseid teateid, anal\u00fc\u00fcsivad viimaseid logisid,\u2026 Loomulikult v\u00f5ivad nad kerida ka kauem tagasi, kuid nad teevad seda v\u00e4ga harva.<\/b> selliste andmetega \u2014 loetakse viimaseid s\u00f5numeid, anal\u00fc\u00fcsitakse viimaseid logisid,\u2026 Ei, loomulikult saavad nad ka ajas tagasi kerida, kuid nad teevad seda v\u00e4ga harva.<\/p>\n<p>Nendest piirangutest on ilmselge, et teate puhul on optimaalseks lahenduseks <b>\u201ep\u00e4evased\u201d sektsioonid<\/b> \u2014 kuna meie kasutaja loeb peaaegu alati seda, mis on talle tulnud \u201et\u00e4na\u201d v\u00f5i \u201eeile\u201d.<\/p>\n<p>Kui me kirjutame ja loeme p\u00e4eva jooksul praktiliselt ainult \u00fches sektsioonis, siis annab see meile ka <b>efektiivsema m\u00e4lu ja ketta kasutuse.<\/b> \u2014 kuna k\u00f5ik sektsiooni indeksid mahuvad h\u00f5lpsasti operaatorisse, erinevalt 'suurtest ja paksudest' kogu tabelis.<\/p>\n<h2>samm-sammult<\/h2>\n<p>\n\u00dcldiselt k\u00f5lab k\u00f5ik eelnev kui \u00fcks pidev kasum. Ja see on saavutatav, kuid selle nimel peame korralikult pingutama \u2014 sest <u>lahenduse sektsioneerimine \u00fche olendi jaoks toob kaasa vajaduse 'l\u00f5hkuda' seotud<\/u>.<\/p>\n<h4>Teade, selle omadused ja projektsioonid<\/h4>\n<p>\nKuna otsustasime jagada s\u00f5numeid kuup\u00e4evade j\u00e4rgi, on m\u00f5istlik jagada ka nendega seotud olendi omadusi (lisatud failid, adressaatide loetelu), ja <b>ka s\u00f5numi kuup\u00e4eva j\u00e4rgi.<\/b>.<\/p>\n<p>Kuna \u00fcks meie t\u00fc\u00fcpiline \u00fclesanne on s\u00f5numite registrite vaatamine (lugemata, sissetulevad, k\u00f5ik), on loogiline, et t\u00f5mmata need ka s\u00f5numite kuup\u00e4evade j\u00e4rgi sektsioneerimise alla.<\/p>\n<p><img decoding=\"async\" alt=\"Messengeri andmebaas (osa 2): jaotame \u201ereaalajas\u201c\" src=\"\/wp-content\/uploads\/2020\/01\/5ea615ca97a2b865de537777c401038c.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<blockquote><p>Lisame sektsioneerimise v\u00f5tme (s\u00f5numi kuup\u00e4eva) k\u00f5ikidesse tabelitesse: adressaadid, fail, registrid. S\u00f5numisse ei ole vaja lisada, vaid kasutada olemasolevat DateTime.<\/p><\/blockquote>\n<p><\/p>\n<h4>Teemad<\/h4>\n<p>\nKuna teema on mitu s\u00f5numit, siis ei ole seda samas mudelis v\u00f5imalik 'l\u00f5hkuda', tuleb tugineda millelegi muule. Meie puhul sobib ideaalselt <b>esimese s\u00f5numi kuup\u00e4ev vestluses<\/b> \u2014 see on teema loomise hetk.<\/p>\n<p><img decoding=\"async\" alt=\"Messengeri andmebaas (osa 2): jaotame \u201ereaalajas\u201c\" src=\"\/wp-content\/uploads\/2020\/01\/4f1336a9e229221f1e25ee8d3c08fb5e.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<blockquote><p>Lisame sektsioneerimise v\u00f5tme (teema kuup\u00e4eva) k\u00f5igisse tabelitesse: teema, osaleja.<\/p><\/blockquote>\n<p>\nKuid n\u00fc\u00fcd seisame silmitsi kahe probleemiga:<\/p>\n<ul>\n<li>millises sektsioonis otsida teema s\u00f5numeid?<\/li>\n<li>millises sektsioonis otsida s\u00f5numi teemat?<\/li>\n<\/ul>\n<p>\nMuidugi, v\u00f5iksime j\u00e4tkata otsimist k\u00f5igis sektsioonides, kuid see oleks v\u00e4ga kurb ja kaotaks k\u00f5ik meie saavutused. Seet\u00f5ttu, et teada, kus konkreetselt otsida, loome loogilised lingid\/viidatud sektsioonidesse:<\/p>\n<ul>\n<li>lisame s\u00f5numisse <b>teema kuup\u00e4eva v\u00e4lja<\/b><\/li>\n<li>lisame teemale <b>s\u00f5numite kuup\u00e4evade komplekti<\/b> selle vestluse (saab eraldi tabelina v\u00f5i kuup\u00e4evade massiivina)<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Messengeri andmebaas (osa 2): jaotame \u201ereaalajas\u201c\" src=\"\/wp-content\/uploads\/2020\/01\/f7bfdc96c396ca37f46d876f185bf98e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKuna iga konkreetse vestluse s\u00f5numite kuup\u00e4evade nimekirja modifikatsioonid j\u00e4\u00e4vad v\u00e4heseks (peaaegu k\u00f5ik s\u00f5numid satuvad 1-2 k\u00fclgnevale p\u00e4evale), eelistan just sellist varianti.<\/p>\n<p>Kokkuv\u00f5tteks, meie andmebaasi struktuur omandas j\u00e4rgmise ilme sektsioneerimise arvesse v\u00f5ttes:<\/p>\n<p><b class=\"spoiler_title\">Tabelid: RU, kui viha on kirillitsa tabelite\/valdkondade nimedes, siis parem mitte vaadata.<\/b><\/p>\n<pre><code class=\"sql\">-- sektsioonid, mis p\u00f5hinevad s\u00f5numi kuup\u00e4eval\nCREATE TABLE \"S\u00f5num_YYYYMMDD\"(\n  \"S\u00f5num\"\n    uuid\n      PRIMARY KEY\n, \"Teema\"\n    uuid\n, \"TeemaKuup\u00e4ev\"\n    date\n, \"Autor\"\n    uuid\n, \"Kuup\u00e4evAeg\" -- kasutame kuup\u00e4eva\n    timestamp\n, \"Tekst\"\n    text\n);\n\nCREATE TABLE \"Adressaat_YYYYMMDD\"(\n  \"S\u00f5numiKuup\u00e4ev\"\n    date\n, \"S\u00f5num\"\n    uuid\n, \"Isik\"\n    uuid\n, PRIMARY KEY(\"S\u00f5num\", \"Isik\")\n);\n\nCREATE TABLE \"Fail_YYYYMMDD\"(\n  \"S\u00f5numiKuup\u00e4ev\"\n    date\n, \"Fail\"\n    uuid\n      PRIMARY KEY\n, \"S\u00f5num\"\n    uuid\n, \"BLOB\"\n    uuid\n, \"Nimi\"\n    text\n);\n\nCREATE TABLE \"S\u00f5numiteRegistr_YYYYMMDD\"(\n  \"S\u00f5numiKuup\u00e4ev\"\n    date\n, \"Omandaja\"\n    uuid\n, \"RegistriT\u00fc\u00fcp\"\n    smallint\n, \"Kuup\u00e4evAeg\"\n    timestamp\n, \"S\u00f5num\"\n    uuid\n, PRIMARY KEY(\"Omandaja\", \"RegistriT\u00fc\u00fcp\", \"S\u00f5num\")\n);\nCREATE INDEX ON \"S\u00f5numiteRegistr_YYYYMMDD\"(\"Omandaja\", \"RegistriT\u00fc\u00fcp\", \"Kuup\u00e4evAeg\" DESC);\n\n-- sektsioonid, mis p\u00f5hinevad teema kuup\u00e4eval\nCREATE TABLE \"Teema_YYYYMMDD\"(\n  \"TeemaKuup\u00e4ev\"\n    date\n, \"Teema\"\n    uuid\n      PRIMARY KEY\n, \"Dokument\"\n    uuid\n, \"Pealkiri\"\n    text\n);\n\nCREATE TABLE \"TeemaOsaleja_YYYYMMDD\"(\n  \"TeemaKuup\u00e4ev\"\n    date\n, \"Teema\"\n    uuid\n, \"Isik\"\n    uuid\n, PRIMARY KEY(\"Teema\", \"Isik\")\n);\n\nCREATE TABLE \"S\u00f5numiteTeemaKuup\u00e4evad_YYYYMMDD\"(\n  \"TeemaKuup\u00e4ev\"\n    date\n, \"Teema\"\n    uuid\n      PRIMARY KEY\n, \"Kuup\u00e4ev\"\n    date\n);\n<\/code><\/pre>\n<h2>Kasutame kokkuhoiuks<\/h2>\n<p>\nAga kui me ei kasuta <noindex><a rel=\"nofollow\" href=\"https:\/\/postgrespro.ru\/docs\/postgresql\/10\/ddl-partitioning\">klassikalist sektsioonimise varianti<\/a><\/noindex> v\u00e4\u00e4rtuste jaotuse alusel (triggereid ja p\u00e4rimise v\u00f5i PARTITION BY kaudu), ning \"k\u00e4sitsi\" rakenduse tasemel, v\u00f5ib m\u00e4rgata, et jaotusklausi v\u00e4\u00e4rtus on juba salvestatud tabeli enda nime.<\/p>\n<p>Seega, kui te olete nii <b>murelik salvestatud andmete mahu p\u00e4rast<\/b>, siis neist \"\u00fclem\u00e4\u00e4rastest\" v\u00e4li on v\u00f5imalik loobuda ja p\u00f6\u00f6rduda konkreetsete tabelite poole. T\u00f5si, k\u00f5ik valikud mitmest sektsioonist tuleb sel juhul rakenduse k\u00fcljele viia.<br \/>\n<br \/>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/483170\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041c\u044b \u0443\u0434\u0430\u0447\u043d\u043e \u0441\u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043d\u0430\u0448\u0435\u0439 PostgreSQL-\u0431\u0430\u0437\u044b \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u043a\u0438, \u043f\u0440\u043e\u0448\u0435\u043b \u0433\u043e\u0434, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0435\u0435 \u043d\u0430\u043f\u043e\u043b\u043d\u044f\u044e\u0442, \u0432\u043e\u0442 \u0432 \u043d\u0435\u0439 \u0443\u0436\u0435 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u044b \u0437\u0430\u043f\u0438\u0441\u0435\u0439, \u0438\u2026 \u0447\u0442\u043e-\u0442\u043e \u0432\u0441\u0435 \u043d\u0430\u0447\u0430\u043b\u043e \u043f\u043e\u0434\u0442\u043e\u0440\u043c\u0430\u0436\u0438\u0432\u0430\u0442\u044c. \u0427\u0430\u0441\u0442\u044c 1: \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u0443\u0435\u043c \u043a\u0430\u0440\u043a\u0430\u0441 \u0431\u0430\u0437\u044b \u0427\u0430\u0441\u0442\u044c 2: \u0441\u0435\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u0443\u0435\u043c \u00ab\u043d\u0430\u0436\u0438\u0432\u0443\u044e\u00bb \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0441 \u0440\u043e\u0441\u0442\u043e\u043c \u043e\u0431\u044a\u0435\u043c\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0440\u0430\u0441\u0442\u0435\u0442 \u0438 \u00ab\u0433\u043b\u0443\u0431\u0438\u043d\u0430\u00bb \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u2014 \u0445\u043e\u0442\u044c \u0438 \u043b\u043e\u0433\u0430\u0440\u0438\u0444\u043c\u0438\u0447\u0435\u0441\u043a\u0438. \u041d\u043e \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u044d\u0442\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-55027","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041c\u044b \u0443\u0434\u0430\u0447\u043d\u043e \u0441\u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043d\u0430\u0448\u0435\u0439 PostgreSQL-\u0431\u0430\u0437\u044b \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u043a\u0438, \u043f\u0440\u043e\u0448\u0435\u043b \u0433\u043e\u0434, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0435\u0435 \u043d\u0430\u043f\u043e\u043b\u043d\u044f\u044e\u0442, \u0432\u043e\u0442 \u0432 \u043d\u0435\u0439 \u0443\u0436\u0435 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u044b \u0437\u0430\u043f\u0438\u0441\u0435\u0439, \u0438\u2026 \u0447\u0442\u043e-\u0442\u043e \u0432\u0441\u0435 \u043d\u0430\u0447\u0430\u043b\u043e \u043f\u043e\u0434\u0442\u043e\u0440\u043c\u0430\u0436\u0438\u0432\u0430\u0442\u044c. \u0427\u0430\u0441\u0442\u044c 1: \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u0443\u0435\u043c \u043a\u0430\u0440\u043a\u0430\u0441 \u0431\u0430\u0437\u044b \u0427\u0430\u0441\u0442\u044c 2: \u0441\u0435\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u0443\u0435\u043c \u00ab\u043d\u0430\u0436\u0438\u0432\u0443\u044e\u00bb \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0441 \u0440\u043e\u0441\u0442\u043e\u043c \u043e\u0431\u044a\u0435\u043c\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0440\u0430\u0441\u0442\u0435\u0442 \u0438 \u00ab\u0433\u043b\u0443\u0431\u0438\u043d\u0430\u00bb \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u2014 \u0445\u043e\u0442\u044c \u0438 \u043b\u043e\u0433\u0430\u0440\u0438\u0444\u043c\u0438\u0447\u0435\u0441\u043a\u0438. \u041d\u043e \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u044d\u0442\u043e\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/bd-messendzhera-ch-2-sektsioniruem-nazhivuyu\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0411\u0414 \u043c\u0435\u0441\u0441\u0435\u043d\u0434\u0436\u0435\u0440\u0430 (\u0447.2): \u0441\u0435\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u0443\u0435\u043c \u00ab\u043d\u0430\u0436\u0438\u0432\u0443\u044e\u00bb | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041c\u044b \u0443\u0434\u0430\u0447\u043d\u043e \u0441\u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043d\u0430\u0448\u0435\u0439 PostgreSQL-\u0431\u0430\u0437\u044b \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u043a\u0438, \u043f\u0440\u043e\u0448\u0435\u043b \u0433\u043e\u0434, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0435\u0435 \u043d\u0430\u043f\u043e\u043b\u043d\u044f\u044e\u0442, \u0432\u043e\u0442 \u0432 \u043d\u0435\u0439 \u0443\u0436\u0435 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u044b \u0437\u0430\u043f\u0438\u0441\u0435\u0439, \u0438\u2026 \u0447\u0442\u043e-\u0442\u043e \u0432\u0441\u0435 \u043d\u0430\u0447\u0430\u043b\u043e \u043f\u043e\u0434\u0442\u043e\u0440\u043c\u0430\u0436\u0438\u0432\u0430\u0442\u044c. \u0427\u0430\u0441\u0442\u044c 1: \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u0443\u0435\u043c \u043a\u0430\u0440\u043a\u0430\u0441 \u0431\u0430\u0437\u044b \u0427\u0430\u0441\u0442\u044c 2: \u0441\u0435\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u0443\u0435\u043c \u00ab\u043d\u0430\u0436\u0438\u0432\u0443\u044e\u00bb \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0441 \u0440\u043e\u0441\u0442\u043e\u043c \u043e\u0431\u044a\u0435\u043c\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0440\u0430\u0441\u0442\u0435\u0442 \u0438 \u00ab\u0433\u043b\u0443\u0431\u0438\u043d\u0430\u00bb \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u2014 \u0445\u043e\u0442\u044c \u0438 \u043b\u043e\u0433\u0430\u0440\u0438\u0444\u043c\u0438\u0447\u0435\u0441\u043a\u0438. \u041d\u043e \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u044d\u0442\u043e\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/bd-messendzhera-ch-2-sektsioniruem-nazhivuyu\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-01-09T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:03:06+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47S\u00f5numite andmebaas (osa 2): sektsioonide loomine \"elus\" | ProHoster","description":"Oleme edukalt kavandanud oma PostgreSQL-andmebaasi struktuuri suhtluse salvestamiseks, aastake on m\u00f6\u00f6dunud, kasutajad t\u00e4idavad seda aktiivselt, n\u00fc\u00fcd on seal miljoneid kirjeid, ja... midagi on hakanud lagisema. Osa 1: andmebaasi raamistik Osa 2: sektsioonide loomine \"elus\" Asjaolu on see, et tabeli mahu suurenemisega suureneb ka indeksite \"s\u00fcgavus\" \u2014 kuigi logaritmiliselt. Kuid aja jooksul see","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/bd-messendzhera-ch-2-sektsioniruem-nazhivuyu","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0411\u0414 \u043c\u0435\u0441\u0441\u0435\u043d\u0434\u0436\u0435\u0440\u0430 (\u0447.2): \u0441\u0435\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u0443\u0435\u043c \u00ab\u043d\u0430\u0436\u0438\u0432\u0443\u044e\u00bb | ProHoster","og:description":"\u041c\u044b \u0443\u0434\u0430\u0447\u043d\u043e \u0441\u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043d\u0430\u0448\u0435\u0439 PostgreSQL-\u0431\u0430\u0437\u044b \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u043a\u0438, \u043f\u0440\u043e\u0448\u0435\u043b \u0433\u043e\u0434, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0435\u0435 \u043d\u0430\u043f\u043e\u043b\u043d\u044f\u044e\u0442, \u0432\u043e\u0442 \u0432 \u043d\u0435\u0439 \u0443\u0436\u0435 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u044b \u0437\u0430\u043f\u0438\u0441\u0435\u0439, \u0438\u2026 \u0447\u0442\u043e-\u0442\u043e \u0432\u0441\u0435 \u043d\u0430\u0447\u0430\u043b\u043e \u043f\u043e\u0434\u0442\u043e\u0440\u043c\u0430\u0436\u0438\u0432\u0430\u0442\u044c. \u0427\u0430\u0441\u0442\u044c 1: \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u0443\u0435\u043c \u043a\u0430\u0440\u043a\u0430\u0441 \u0431\u0430\u0437\u044b \u0427\u0430\u0441\u0442\u044c 2: \u0441\u0435\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u0443\u0435\u043c \u00ab\u043d\u0430\u0436\u0438\u0432\u0443\u044e\u00bb \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0441 \u0440\u043e\u0441\u0442\u043e\u043c \u043e\u0431\u044a\u0435\u043c\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0440\u0430\u0441\u0442\u0435\u0442 \u0438 \u00ab\u0433\u043b\u0443\u0431\u0438\u043d\u0430\u00bb \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u2014 \u0445\u043e\u0442\u044c \u0438 \u043b\u043e\u0433\u0430\u0440\u0438\u0444\u043c\u0438\u0447\u0435\u0441\u043a\u0438. \u041d\u043e \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u044d\u0442\u043e","og:url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/bd-messendzhera-ch-2-sektsioniruem-nazhivuyu","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-01-09T21:00:00+00:00","article:modified_time":"2020-02-18T11:03:06+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"55027","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-24 13:34:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 19:53:48","updated":"2026-01-24 13:34:20"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/55027","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=55027"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/55027\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=55027"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=55027"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=55027"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}