{"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\/sq\/blog\/administrirovanie\/bd-messendzhera-ch-2-sektsioniruem-nazhivuyu","title":{"rendered":"BD e mesazherit (pjesa 2): sekcioni \"n\u00eb koh\u00eb reale\"","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Kemi projektuar me sukses struktur\u00ebn e baz\u00ebs son\u00eb t\u00eb PostgreSQL p\u00ebr ruajtjen e bisedave; nj\u00eb vit kaloi dhe p\u00ebrdoruesit e mbushin at\u00eb aktivisht, tashm\u00eb ajo ka <b>miliona regjistrimesh<\/b>, dhe\u2026 di\u00e7ka filloi t\u00eb ngadal\u00ebsohet.<\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/483176\/\">Pjesa 1: projektojm\u00eb skeletin e baz\u00ebs<\/a><\/noindex><\/li>\n<li>Pjesa 2: e segmentojm\u00eb \u00ablive\u00bb<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"BD e mesazherit (pjesa 2): sekcioni &quot;n\u00eb koh\u00eb reale&quot;\" src=\"\/wp-content\/uploads\/2020\/01\/7830da046d9c472af15330e42cbb05e0.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n\u00c7\u00ebshtja \u00ebsht\u00eb se <b>nd\u00ebrsa rritet volumi i tabel\u00ebs, rritet gjithashtu edhe \"thell\u00ebsia\" e indekseve<\/b> \u2014 ndon\u00ebse n\u00eb m\u00ebnyr\u00eb logarithmike. Por me kalimin e koh\u00ebs, kjo e detyron serverin q\u00eb p\u00ebr t\u00eb ekzekutuar t\u00eb nj\u00ebjtat detyra leximi\/shkrimi <i>t\u00eb p\u00ebrpunoj\u00eb shum\u00eb m\u00eb tep\u00ebr faqe t\u00eb dh\u00ebnash<\/i>, sesa n\u00eb fillim.<\/p>\n<p>K\u00ebtu ndihmon <b>sektorizimi<\/b>.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nDua t\u00eb theksoj se nuk \u00ebsht\u00eb fjala p\u00ebr sharding, pra shp\u00ebrndarjen e t\u00eb dh\u00ebnave midis bazave t\u00eb ndryshme ose server\u00ebve. Sepse, madje edhe duke ndar\u00eb t\u00eb dh\u00ebnat n\u00eb <b>disa<\/b> servera, nuk do t'i shp\u00ebtoni dot problematik\u00ebs s\u00eb \"mbledhjes\" s\u00eb indekseve me kalimin e koh\u00ebs. E qart\u00eb \u00ebsht\u00eb se n\u00ebse mund t\u00eb lejoni vetes t\u00eb aktivizoni nj\u00eb server t\u00eb ri \u00e7do dit\u00eb, at\u00ebher\u00eb problemet tuaja do t\u00eb jen\u00eb tashm\u00eb krejt\u00ebsisht jasht\u00eb fush\u00ebs s\u00eb baz\u00ebs specifike t\u00eb t\u00eb dh\u00ebnave.<\/p>\n<p>Ne do t\u00eb shqyrtojm\u00eb jo skriptet specifike p\u00ebr realizimin e sektorization \"n\u00eb harduer\", por vet\u00eb qasjen \u2014 \u00e7far\u00eb dhe si duhet \"prer\u00eb n\u00eb copa\", dhe ku t\u00eb \u00e7on nj\u00eb d\u00ebshir\u00eb e till\u00eb.<\/p>\n<h2>Koncepti<\/h2>\n<p>\nS\u00ebrish, t\u00eb p\u00ebrcaktojm\u00eb q\u00ebllimin ton\u00eb: ne duam t\u00eb b\u00ebjm\u00eb t\u00eb mundur q\u00eb sot, nes\u00ebr dhe pas nj\u00eb viti, numri i t\u00eb dh\u00ebnave lexueshme t\u00eb PostgreSQL gjat\u00eb \u00e7do operacioni leximi\/shkrimi t\u00eb mbetet af\u00ebrsisht i nj\u00ebjt\u00eb.<\/p>\n<p>P\u00ebr \u00e7do <b>t\u00eb dh\u00ebn\u00eb q\u00eb akumulohet kronologjikisht<\/b> (mesazhe, dokumente, regjistra, arkiva, &#8230;) zgjedhja natyrale si \u00e7el\u00ebsi p\u00ebr seksionimin \u00ebsht\u00eb <b>data\/orari i ngjarjes<\/b>. N\u00eb rastin ton\u00eb, ngjarja e till\u00eb \u00ebsht\u00eb <u>momentin e d\u00ebrgimit t\u00eb mesazhit<\/u>.<\/p>\n<p>V\u00ebrejm\u00eb se p\u00ebrdoruesit praktikisht gjithmon\u00eb <b>punojn\u00eb vet\u00ebm me \"t\u00eb fundit\"<\/b> t\u00eb dh\u00ebna t\u00eb tilla \u2014 lexojn\u00eb mesazhet e fundit, analizojn\u00eb regjistrimet e fundit,\u2026 Jo, sigurisht, ata mund t\u00eb shfletojn\u00eb edhe m\u00eb tej prapa n\u00eb koh\u00eb, por e b\u00ebjn\u00eb k\u00ebt\u00eb shum\u00eb rrall\u00eb.<\/p>\n<p>Nga k\u00ebto kufizime, b\u00ebhet e qart\u00eb se zgjidhja optimale p\u00ebr mesazhet do t\u00eb jet\u00eb <b>\"ditar\u00ebve\" t\u00eb sektor\u00ebve<\/b> \u2014 sepse pothuajse gjithmon\u00eb p\u00ebrdoruesi yn\u00eb do t\u00eb lexoj\u00eb at\u00eb q\u00eb i ka ardhur \"sot\" ose \"dje\".<\/p>\n<p>N\u00ebse ne gjat\u00eb dit\u00ebs shkruajm\u00eb dhe lexojm\u00eb praktikisht vet\u00ebm n\u00eb nj\u00eb sektor, at\u00ebher\u00eb kjo na ofron gjithashtu <b>nj\u00eb p\u00ebrdorim m\u00eb efektiv t\u00eb memories dhe diskeve<\/b> \u2014 pasi t\u00eb gjitha indikatoret e sektorit leht\u00eb hyjn\u00eb n\u00eb RAM, ndryshe nga \"t\u00eb m\u00ebdhenjt\u00eb dhe t\u00eb sh\u00ebndosh\u00ebt\" n\u00eb t\u00eb gjith\u00eb tabel\u00ebn.<\/p>\n<h2>hap pas hapi<\/h2>\n<p>\nN\u00eb p\u00ebrgjith\u00ebsi, gjith\u00e7ka e th\u00ebn\u00eb m\u00eb sip\u00ebr ting\u00ebllon si nj\u00eb fitim i vazhduesh\u00ebm. Dhe ai \u00ebsht\u00eb i arritsh\u00ebm, por p\u00ebr k\u00ebt\u00eb na duhet t\u00eb punojm\u00eb shum\u00eb \u2014 sepse <u>zgjidhja p\u00ebr t\u00eb ndar\u00eb nj\u00eb nga entitetet sjell nevoj\u00ebn p\u00ebr \"ndarjen\" e lidhur me t\u00eb<\/u>.<\/p>\n<h4>Mesazhi, pronat e tij dhe projekcionet<\/h4>\n<p>\nDuke qen\u00eb se vendos\u00ebm t\u00eb ndajm\u00eb mesazhet sipas datave, \u00ebsht\u00eb gjithashtu e arsyeshme t\u00eb ndajm\u00eb entitetet-pron\u00eb t\u00eb lidhura me to (skedar\u00ebt e bashk\u00ebngjitur, lista e adresat) dhe <b>po ashtu sipas dat\u00ebs s\u00eb mesazhit<\/b>.<\/p>\n<p>Duke qen\u00eb se nj\u00eb nga detyrat tona tipike \u00ebsht\u00eb pik\u00ebrisht shqyrtimi i regjistrave t\u00eb mesazheve (t\u00eb pa lexuar, t\u00eb hyra, t\u00eb gjitha), \u00ebsht\u00eb logjike t'i \"p\u00ebrfshijm\u00eb\" ato n\u00eb ndarjen sipas datave t\u00eb mesazheve.<\/p>\n<p><img decoding=\"async\" alt=\"BD e mesazherit (pjesa 2): sekcioni &quot;n\u00eb koh\u00eb reale&quot;\" src=\"\/wp-content\/uploads\/2020\/01\/5ea615ca97a2b865de537777c401038c.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<blockquote><p>Shtojm\u00eb \u00e7el\u00ebsin e ndarjes (dat\u00ebn e mesazhit) n\u00eb t\u00eb gjitha tabelat: adresat, skedari, regjistrat. N\u00eb vet\u00eb mesazhin nuk \u00ebsht\u00eb e nevojshme t\u00eb shtohet, por mund t\u00eb p\u00ebrdoret ekzistuesja DataOra.<\/p><\/blockquote>\n<p><\/p>\n<h4>Temat<\/h4>\n<p>\nDuke qen\u00eb se tema \u00ebsht\u00eb nj\u00eb p\u00ebr disa mesazhe, nuk \u00ebsht\u00eb e mundur ta \"ndajm\u00eb\" at\u00eb n\u00eb t\u00eb nj\u00ebjt\u00ebn model, duhet t\u00eb mb\u00ebshtetet n\u00eb di\u00e7ka tjet\u00ebr. N\u00eb rastin ton\u00eb p\u00ebrshtatet perfekten <b>data e mesazhit t\u00eb par\u00eb n\u00eb bised\u00eb<\/b> - q\u00eb \u00ebsht\u00eb momenti i krijimit, pra, i tem\u00ebs.<\/p>\n<p><img decoding=\"async\" alt=\"BD e mesazherit (pjesa 2): sekcioni &quot;n\u00eb koh\u00eb reale&quot;\" src=\"\/wp-content\/uploads\/2020\/01\/4f1336a9e229221f1e25ee8d3c08fb5e.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<blockquote><p>Shtojm\u00eb \u00e7el\u00ebsin e ndarjes (dat\u00ebn e tem\u00ebs) n\u00eb t\u00eb gjitha tabelat: tema, pjes\u00ebmarr\u00ebsi.<\/p><\/blockquote>\n<p>\nPor tani na dalin menj\u00ebher\u00eb dy probleme:<\/p>\n<ul>\n<li>n\u00eb cil\u00ebn seksion t\u00eb k\u00ebrkojm\u00eb mesazhet sipas tem\u00ebs?<\/li>\n<li>n\u00eb cil\u00ebn seksion t\u00eb k\u00ebrkojm\u00eb tem\u00ebn nga mesazhi?<\/li>\n<\/ul>\n<p>\nSigurisht, mund t\u00eb vazhdojm\u00eb t\u00eb k\u00ebrkojm\u00eb n\u00eb t\u00eb gjitha seksionet, por kjo do t\u00eb ishte shum\u00eb e d\u00ebshp\u00ebruar dhe do t\u00eb shfuqizonte t\u00eb gjitha fitimet tona. Prandaj, p\u00ebr t\u00eb ditur ku t\u00eb k\u00ebrkojm\u00eb konkretisht, do t\u00eb b\u00ebjm\u00eb lidhje logjike\/kursor\u00eb n\u00eb seksione:<\/p>\n<ul>\n<li>n\u00eb mesazh do t\u00eb shtojm\u00eb <b>nj\u00eb fush\u00eb me dat\u00ebn e tem\u00ebs<\/b><\/li>\n<li>tem\u00ebs do t'i shtojm\u00eb <b>grupin e datave t\u00eb mesazheve<\/b> t\u00eb k\u00ebsaj bised\u00eb (mund t\u00eb jet\u00eb nj\u00eb tabel\u00eb e ve\u00e7ant\u00eb, ose dhe nj\u00eb masiv datash)<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"BD e mesazherit (pjesa 2): sekcioni &quot;n\u00eb koh\u00eb reale&quot;\" src=\"\/wp-content\/uploads\/2020\/01\/f7bfdc96c396ca37f46d876f185bf98e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDuke qen\u00eb se modifikimet e list\u00ebs s\u00eb datave t\u00eb mesazheve p\u00ebr \u00e7do bised\u00eb t\u00eb ve\u00e7ant\u00eb do t\u00eb jen\u00eb t\u00eb pakta (sepse pothuajse t\u00eb gjitha mesazhet bien n\u00eb 1-2 dit\u00eb t\u00eb ngjitura), do t\u00eb ndalem n\u00eb k\u00ebt\u00eb variant.<\/p>\n<p>Sipas p\u00ebrmbledhjes, struktura e baz\u00ebs son\u00eb mori k\u00ebt\u00eb form\u00eb duke marr\u00eb parasysh ndarjen:<\/p>\n<p><b class=\"spoiler_title\">Tabelat: RU, n\u00ebse ndjeshm\u00ebria ndaj cirilik\u00ebs n\u00eb emrat e tabelave\/fushave \u00ebsht\u00eb e keqe, \u00ebsht\u00eb m\u00eb mir\u00eb t\u00eb mos shikoni<\/b><\/p>\n<pre><code class=\"sql\">-- seksionet sipas dat\u00ebs s\u00eb mesazhit\nCREATE TABLE \"Mesazh_YYYYMMDD\"(\n  \"Mesazh\"\n    uuid\n      PRIMARY KEY\n, \"Tema\"\n    uuid\n, \"DataTem\u00ebs\"\n    date\n, \"Autori\"\n    uuid\n, \"DataKoh\u00eb\" -- p\u00ebrdorim si dat\u00eb\n    timestamp\n, \"Teksti\"\n    text\n);\n\nCREATE TABLE \"Adresat_YYYYMMDD\"(\n  \"DataMesazhit\"\n    date\n, \"Mesazh\"\n    uuid\n, \"Personi\"\n    uuid\n, PRIMARY KEY(\"Mesazh\", \"Personi\")\n);\n\nCREATE TABLE \"Skedari_YYYYMMDD\"(\n  \"DataMesazhit\"\n    date\n, \"Skedari\"\n    uuid\n      PRIMARY KEY\n, \"Mesazh\"\n    uuid\n, \"BLOB\"\n    uuid\n, \"Emri\"\n    text\n);\n\nCREATE TABLE \"RegjistriMesazheve_YYYYMMDD\"(\n  \"DataMesazhit\"\n    date\n, \"Pronari\"\n    uuid\n, \"LlojiRegjistrit\"\n    smallint\n, \"DataKoh\u00eb\"\n    timestamp\n, \"Mesazh\"\n    uuid\n, PRIMARY KEY(\"Pronari\", \"LlojiRegjistrit\", \"Mesazh\")\n);\nCREATE INDEX ON \"RegjistriMesazheve_YYYYMMDD\"(\"Pronari\", \"LlojiRegjistrit\", \"DataKoh\u00eb\" DESC);\n\n-- seksionet sipas dat\u00ebs s\u00eb tem\u00ebs\nCREATE TABLE \"Tema_YYYYMMDD\"(\n  \"DataTem\u00ebs\"\n    date\n, \"Tema\"\n    uuid\n      PRIMARY KEY\n, \"Dokumenti\"\n    uuid\n, \"Emri\"\n    text\n);\n\nCREATE TABLE \"Pjes\u00ebmarr\u00ebsiTem\u00ebs_YYYYMMDD\"(\n  \"DataTem\u00ebs\"\n    date\n, \"Tema\"\n    uuid\n, \"Personi\"\n    uuid\n, PRIMARY KEY(\"Tema\", \"Personi\")\n);\n\nCREATE TABLE \"DatatMesazheveTem\u00ebs_YYYYMMDD\"(\n  \"DataTem\u00ebs\"\n    date\n, \"Tema\"\n    uuid\n      PRIMARY KEY\n, \"Data\"\n    date\n);\n<\/code><\/pre>\n<h2>K\u00ebtu po kursejm\u00eb nj\u00eb qindark\u00eb<\/h2>\n<p>\nPor, n\u00ebse ne nuk p\u00ebrdorim <noindex><a rel=\"nofollow\" href=\"https:\/\/postgrespro.ru\/docs\/postgresql\/10\/ddl-partitioning\">variantin klasik t\u00eb seksionimit<\/a><\/noindex> n\u00eb baz\u00eb t\u00eb shp\u00ebrndarjes s\u00eb vlerave t\u00eb fush\u00ebs (p\u00ebrmes triggereve dhe trash\u00ebgimis\u00eb ose PARTITION BY), por \u00abmanualmente\u00bb n\u00eb nivelin e aplikacionit, at\u00ebher\u00eb mund t\u00eb v\u00ebrehet se vlera e \u00e7el\u00ebsit t\u00eb seksionimit tashm\u00eb ruhet n\u00eb emrin e vet\u00eb tabel\u00ebs.<\/p>\n<p>Prandaj, n\u00ebse jeni aq <b>t\u00eb shqet\u00ebsuar p\u00ebr volumin e t\u00eb dh\u00ebnave t\u00eb ruajtur<\/b>, at\u00ebher\u00eb k\u00ebto \u00abfusha t\u00eb tep\u00ebrta\u00bb mund t\u00eb hiqen dhe t\u00eb adresohet direkt n\u00eb tabela specifike. Megjithat\u00eb, t\u00eb gjitha zgjedhjet nga disa seksione n\u00eb k\u00ebt\u00eb rast do t\u00eb duhet t\u00eb kalojn\u00eb n\u00eb an\u00ebn e aplikacionit.<br \/>\n<br \/>Burimi: <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 5.0.2 - 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. .\" \/>\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\/sq\/blog\/administrirovanie\/bd-messendzhera-ch-2-sektsioniruem-nazhivuyu\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\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. .\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/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\udd47Baza e t\u00eb dh\u00ebnave t\u00eb mesazhereve (pjesa 2): seksionojm\u00eb \u00abn\u00eb koh\u00eb reale\u00bb | ProHoster","description":"Ne e projektuam me sukses struktur\u00ebn e baz\u00ebs ton\u00eb PostgreSQL p\u00ebr ruajtjen e bisedave, vitin e kaluar, p\u00ebrdoruesit aktivisht e mbushin at\u00eb, tashm\u00eb ka miliona regjistrime, dhe... di\u00e7ka filloi t\u00eb ngec\u00eb.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/bd-messendzhera-ch-2-sektsioniruem-nazhivuyu","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","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. .","og:url":"https:\/\/prohoster.info\/sq\/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","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/55027","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=55027"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/55027\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=55027"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=55027"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=55027"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}