{"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":"Baza e t\u00eb dh\u00ebnave t\u00eb mesazheve (p\u00ebrgj.2): seksionojm\u00eb \u00abn\u00eb koh\u00eb reale\u00bb","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, ka kaluar nj\u00eb vit, p\u00ebrdoruesit e mbushin at\u00eb aktivisht, k\u00ebtu ka tashm\u00eb <b>miliona regjistrime<\/b>, dhe\u2026 di\u00e7ka ka filluar t\u00eb ngadal\u00ebsohet.<\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/483176\/\">Pjesa 1: projektimi i korniz\u00ebs s\u00eb baz\u00ebs<\/a><\/noindex><\/li>\n<li>Pjesa 2: sekcionimi \"n\u00eb koh\u00eb reale\"<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Baza e t\u00eb dh\u00ebnave t\u00eb mesazheve (p\u00ebrgj.2): seksionojm\u00eb \u00abn\u00eb koh\u00eb reale\u00bb\" src=\"\/wp-content\/uploads\/2020\/01\/7830da046d9c472af15330e42cbb05e0.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n\u00c7\u00ebshtja \u00ebsht\u00eb se <b>me rritjen e volumit t\u00eb tryez\u00ebs rritet 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 t\u00eb p\u00ebrpunoj\u00eb p\u00ebr t\u00eb nj\u00ebjtat detyra t\u00eb leximit\/shkrimit <i>shum\u00eb m\u00eb tep\u00ebr faqe t\u00eb dh\u00ebnash<\/i>, se sa n\u00eb fillim.<\/p>\n<p>K\u00ebtu \u00ebsht\u00eb n\u00eb ndihm\u00eb <b>sekcionimi<\/b>.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nV\u00ebrej se nuk po flas p\u00ebr sharding, pra shp\u00ebrndarjen e t\u00eb dh\u00ebnave midis bazave t\u00eb ndryshme ose server\u00ebve. Sepse, edhe n\u00ebse ndan t\u00eb dh\u00ebnat n\u00eb <b>disa<\/b> server\u00ebt, nuk do t\u00eb eleminosh dot problemin e \"zmadhojn\u00eb\" indekseve me kalimin e koh\u00ebs. \u00cbsht\u00eb e qart\u00eb se n\u00ebse mund t\u00eb lejojm\u00eb \u00e7do dit\u00eb t\u00eb fusim n\u00eb funksion nj\u00eb server t\u00eb ri, at\u00ebher\u00eb problemet tona do t\u00eb kalonin n\u00eb nj\u00eb nivel krejt tjet\u00ebr, jasht\u00eb asaj t\u00eb ve\u00e7ant\u00ebs s\u00eb BDs.<\/p>\n<p>Ne do t\u00eb shqyrtojm\u00eb jo skenar\u00ebt e ve\u00e7ant\u00eb p\u00ebr implementimin e sekcionimit \"n\u00eb harduer\", por qasjen vet\u00eb \u2014 se \u00e7far\u00eb dhe si duhet \"prer\u00eb n\u00eb copa\", dhe \u00e7far\u00eb t\u00eb tilla d\u00ebshira sjell.<\/p>\n<h2>Koncepti<\/h2>\n<p>\nNj\u00eb her\u00eb tjet\u00ebr le t\u00eb p\u00ebrcaktojm\u00eb q\u00ebllimin ton\u00eb: ne d\u00ebshirojm\u00eb q\u00eb dhe sot, dhe nes\u00ebr, dhe pas nj\u00eb viti numri i t\u00eb dh\u00ebnave PostgreSQL t\u00eb lexueshme gjat\u00eb \u00e7do operacioni leximi\/shkrimi t\u00eb mbetet p\u00ebraf\u00ebrsisht i nj\u00ebjt\u00eb.<\/p>\n<p>P\u00ebr \u00e7do lloj <b>t\u00eb dh\u00ebnash q\u00eb akumulohet n\u00eb m\u00ebnyr\u00eb kronologjike<\/b> (mesazhe, dokumente, loge, arkiva, \u2026) zgjedhja natyrale si \u00e7el\u00ebsi i sekcionimit \u00ebsht\u00eb <b>data\/koha e ngjarjes<\/b>. N\u00eb rastin ton\u00eb, kjo ngjarje \u00ebsht\u00eb <u>momentin e d\u00ebrgimit t\u00eb mesazhit<\/u>.<\/p>\n<p>V\u00ebrej se p\u00ebrdoruesit zakonisht <b>punojn\u00eb vet\u00ebm me \"t\u00eb fundit\"<\/b> t\u00eb dh\u00ebna t\u00eb tilla \u2014 lexojn\u00eb mesazhet m\u00eb t\u00eb fundit, analizojn\u00eb loget m\u00eb t\u00eb fundit,\u2026 Jo, natyrisht, ata mund t\u00eb shfletojn\u00eb edhe m\u00eb ngadal\u00eb prapa n\u00eb koh\u00eb, por e b\u00ebjn\u00eb at\u00eb shum\u00eb rrall\u00eb.<\/p>\n<p>Nga k\u00ebto kufizime b\u00ebhet e qart\u00eb se zgjidhja m\u00eb optimale p\u00ebr mesazhet do t\u00eb jen\u00eb <b>\"seksionet p\u00ebr dit\u00eb\"<\/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 gjat\u00eb dit\u00ebs shkruajm\u00eb dhe lexojm\u00eb n\u00eb m\u00ebnyr\u00eb praktike vet\u00ebm n\u00eb nj\u00eb seksion, at\u00ebher\u00eb kjo na japin gjithashtu <b>p\u00ebrdorim m\u00eb efektiv t\u00eb memories dhe diskut<\/b> \u2014 sepse t\u00eb gjith\u00eb indeksat e seksionit leht\u00eb mund t\u00eb mbahen n\u00eb RAM, n\u00eb krahasim me \"t\u00eb m\u00ebdhenjt\u00eb dhe t\u00eb r\u00ebnd\u00eb\" n\u00eb t\u00eb gjith\u00eb tryez\u00ebn.<\/p>\n<h2>hapi-pas-hapi<\/h2>\n<p>\nDhe pra, gjith\u00eb \u00e7ka u tha m\u00eb lart ting\u00ebllon si nj\u00eb fitim i pashembullt. Dhe ai \u00ebsht\u00eb i arritsh\u00ebm, por p\u00ebr k\u00ebt\u00eb duhet t\u00eb punojm\u00eb mir\u00eb \u2014 sepse <u>zgjidhja p\u00ebr t\u00eb sekcionuar nj\u00eb nga entitetet e krijon nevoj\u00ebn p\u00ebr \"prerjen\" e entiteteve t\u00eb lidhura me t\u00eb<\/u>.<\/p>\n<h4>Mesazhi, vetit\u00eb e tij dhe projekcionet<\/h4>\n<p>\nP\u00ebrderisa vendos\u00ebm t\u00eb presim mesazhet sipas datave, ka sens t\u00eb ndajm\u00eb gjithashtu edhe entitetet e varura prej tyre (skedar\u00eb t\u00eb bashkangjitur, lista e marr\u00ebsve), 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 shikimi i regjistrave t\u00eb mesazheve (t\u00eb pa lexuara, t\u00eb ardhshme, t\u00eb gjitha), \u00ebsht\u00eb logjike q\u00eb ato gjithashtu t\u00eb \"p\u00ebrfshihen\" n\u00eb sekcionimin sipas datave t\u00eb mesazheve.<\/p>\n<p><img decoding=\"async\" alt=\"Baza e t\u00eb dh\u00ebnave t\u00eb mesazheve (p\u00ebrgj.2): seksionojm\u00eb \u00abn\u00eb koh\u00eb reale\u00bb\" src=\"\/wp-content\/uploads\/2020\/01\/5ea615ca97a2b865de537777c401038c.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<blockquote><p>Shtojm\u00eb \u00e7el\u00ebsin e sekcionimit (dat\u00ebn e mesazhit) n\u00eb t\u00eb gjitha tryezat: marr\u00ebsit, skedari, regjistrat. N\u00eb mesazh vet\u00eb nuk mund t\u00eb shtojm\u00eb, por t\u00eb p\u00ebrdorim Dat\u00ebn e Koha ekzistuese.<\/p><\/blockquote>\n<p><\/p>\n<h4>Temat<\/h4>\n<p>\nDuke qen\u00eb se tema \u00ebsht\u00eb nj\u00eb p\u00ebr disa mesazhe, e \"prer\u00eb\" n\u00eb modelin e nj\u00ebjt\u00eb nuk do t\u00eb jet\u00eb e mundur, duhet t\u00eb mb\u00ebshtetemi n\u00eb di\u00e7ka tjet\u00ebr. N\u00eb rastin ton\u00eb, p\u00ebrkryer p\u00ebr k\u00ebt\u00eb \u00ebsht\u00eb <b>data e mesazhit t\u00eb par\u00eb n\u00eb bised\u00eb<\/b> \u2014 pra momenti i krijimit, vet\u00eb tema.<\/p>\n<p><img decoding=\"async\" alt=\"Baza e t\u00eb dh\u00ebnave t\u00eb mesazheve (p\u00ebrgj.2): seksionojm\u00eb \u00abn\u00eb koh\u00eb reale\u00bb\" src=\"\/wp-content\/uploads\/2020\/01\/4f1336a9e229221f1e25ee8d3c08fb5e.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<blockquote><p>Shtojm\u00eb \u00e7el\u00ebsin e sekcionimit (dat\u00ebn e tem\u00ebs) n\u00eb t\u00eb gjitha tryezat: tema, pjes\u00ebmarr\u00ebsi.<\/p><\/blockquote>\n<p>\nPor tani kemi shfaqur menj\u00ebher\u00eb dy probleme:<\/p>\n<ul>\n<li>n\u00eb cilin seksion t\u00eb k\u00ebrkojm\u00eb mesazhet sipas tem\u00ebs?<\/li>\n<li>n\u00eb cilin seksion t\u00eb k\u00ebrkojm\u00eb tem\u00ebn nga mesazhi?<\/li>\n<\/ul>\n<p>\nMund ta vazhdojm\u00eb t\u00eb k\u00ebrkojm\u00eb n\u00eb t\u00eb gjitha seksionet, por kjo do t\u00eb ishte shum\u00eb e trishtueshme dhe do t\u00eb anulonte t\u00eb gjitha p\u00ebrfitimet tona. Prandaj, p\u00ebr t\u00eb ditur se ku sakt\u00ebsisht t\u00eb k\u00ebrkojm\u00eb, do t\u00eb b\u00ebjm\u00eb lidhje logjike\/indikatore p\u00ebr seksionet:<\/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>nj\u00eb set datash t\u00eb mesazheve<\/b> t\u00eb k\u00ebtij bisedimi (mund t\u00eb jet\u00eb nj\u00eb tryez\u00eb e ve\u00e7ant\u00eb, ose nj\u00eb mas\u00eb e datave)<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Baza e t\u00eb dh\u00ebnave t\u00eb mesazheve (p\u00ebrgj.2): seksionojm\u00eb \u00abn\u00eb koh\u00eb reale\u00bb\" 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 do t\u00eb jen\u00eb t\u00eb pakta (sepse shumica e mesazheve bien n\u00eb 1-2 dit\u00ebt p\u00ebrkat\u00ebse), un\u00eb do t\u00eb ndal\u00ebm pik\u00ebrisht n\u00eb nj\u00eb variant t\u00eb till\u00eb.<\/p>\n<p>Pra, struktura e baz\u00ebs son\u00eb mori pamjen e m\u00ebposhtme me marr\u00eb parasysh sekcionimin:<\/p>\n<p><b class=\"spoiler_title\">Tabelat: RU, n\u00ebse keni nj\u00eb reagim t\u00eb keq ndaj cirilik\u00ebs n\u00eb emrat e tabelave\/fushave, \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 \"Mesazhi_YYYYMMDD\"(\n  \"Mesazhi\"\n    uuid\n      PRIMARY KEY\n, \"Tema\"\n    uuid\n, \"DataTema\"\n    date\n, \"Autori\"\n    uuid\n, \"DataKoha\" -- p\u00ebrdorim si dat\u00eb\n    timestamp\n, \"Teksti\"\n    text\n);\n\nCREATE TABLE \"Adresati_YYYYMMDD\"(\n  \"DataMesazhit\"\n    date\n, \"Mesazhi\"\n    uuid\n, \"Personi\"\n    uuid\n, PRIMARY KEY(\"Mesazhi\", \"Personi\")\n);\n\nCREATE TABLE \"Skedari_YYYYMMDD\"(\n  \"DataMesazhit\"\n    date\n, \"Skedari\"\n    uuid\n      PRIMARY KEY\n, \"Mesazhi\"\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, \"TipiRegjistrit\"\n    smallint\n, \"DataKoha\"\n    timestamp\n, \"Mesazhi\"\n    uuid\n, PRIMARY KEY(\"Pronari\", \"TipiRegjistrit\", \"Mesazhi\")\n);\nCREATE INDEX ON \"RegjistriMesazheve_YYYYMMDD\"(\"Pronari\", \"TipiRegjistrit\", \"DataKoha\" DESC);\n\n-- seksionet sipas dat\u00ebs s\u00eb tem\u00ebs\nCREATE TABLE \"Tema_YYYYMMDD\"(\n  \"DataTema\"\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  \"DataTema\"\n    date\n, \"Tema\"\n    uuid\n, \"Personi\"\n    uuid\n, PRIMARY KEY(\"Tema\", \"Personi\")\n);\n\nCREATE TABLE \"DatatMesazheveTem\u00ebs_YYYYMMDD\"(\n  \"DataTema\"\n    date\n, \"Tema\"\n    uuid\n      PRIMARY KEY\n, \"Data\"\n    date\n);\n<\/code><\/pre>\n<h2>K\u00ebn\u00ebsojme pak<\/h2>\n<p>\nPor, n\u00ebse nuk p\u00ebrdorim <noindex><a rel=\"nofollow\" href=\"https:\/\/postgrespro.ru\/docs\/postgresql\/10\/ddl-partitioning\">varianti klasik i sekcionimit<\/a><\/noindex> n\u00eb baz\u00eb t\u00eb shp\u00ebrndarjes s\u00eb vlerave t\u00eb fush\u00ebs (n\u00ebp\u00ebrmjet triggers dhe trash\u00ebgimis\u00eb ose PARTITION BY), por \u201cduke e b\u00ebr\u00eb\u201d manualisht n\u00eb nivelin e aplikacionit, mund t\u00eb v\u00ebrejm\u00eb se vlera e \u00e7el\u00ebsit t\u00eb sekcionimit tashm\u00eb ruhet n\u00eb emrin e vet\u00eb tabel\u00ebs.<\/p>\n<p>Prandaj, n\u00ebse shqet\u00ebsoheni aq shum\u00eb <b>p\u00ebr volumet e t\u00eb dh\u00ebnave t\u00eb ruajtura<\/b>, at\u00ebher\u00eb mund t\u00eb heqim k\u00ebto \u201ct\u00eb tep\u00ebrta\u201d fusha dhe t\u00eb drejtohemi direkt n\u00eb tabelat specifike. Megjithat\u00eb, t\u00eb gjitha zgjedhjet nga disa seksione n\u00eb k\u00ebt\u00eb rast do t\u00eb duhet t\u00eb kalohen 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.0.1 - 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.0.1\" \/>\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\udd47BD e mesazhit (pjesa 2): sekcionojm\u00eb \u00abn\u00eb koh\u00eb reale\u00bb | ProHoster","description":"Kemi projektuar me sukses strukturen e baz\u00ebs son\u00eb PostgreSQL p\u00ebr ruajtjen e bisedave. Ka kaluar nj\u00eb vit, p\u00ebrdoruesit e kan\u00eb mbushur at\u00eb aktivisht, tani ka miliona t\u00eb dh\u00ebna, dhe\u2026 gjith\u00e7ka ka filluar t\u00eb ngadal\u00ebsohet.","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}]}}