{"id":36634,"date":"2019-10-31T22:12:47","date_gmt":"2019-10-31T19:12:47","guid":{"rendered":"https:\/\/prohoster.info\/blog\/globaly-mechi-kladentsy-dlya-hraneniya-dannyh-derevya-chast-1\/"},"modified":"2019-10-31T22:12:47","modified_gmt":"2019-10-31T19:12:47","slug":"globaly-mechi-kladentsy-dlya-hraneniya-dannyh-derevya-chast-1","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/globaly-mechi-kladentsy-dlya-hraneniya-dannyh-derevya-chast-1","title":{"rendered":"I Globali \u2014 spade-treasure per la conservazione dei dati. Alberi. Parte 1","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex><a rel=\"nofollow\" href=\"http:\/\/habrahabr.ru\/company\/intersystems\/blog\/263791\/\"><img decoding=\"async\" alt=\"I Globali \u2014 spade-treasure per la conservazione dei dati. Alberi. Parte 1\" src=\"\/wp-content\/uploads\/2019\/07\/83b8e36bff66516e2c331d75d8434e13.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex> Le vere armi segrete delle banche dati \u2014 i globali \u2014 sono conosciute da tempo, ma fino ad oggi pochi sanno come utilizzarle in modo efficace o non le possiedono affatto, questo superpotere.<\/p>\n<p>Se si utilizzano i globali per risolvere i problemi per i quali sono realmente vantaggiosi, \u00e8 possibile ottenere risultati eccezionali, sia in termini di prestazioni che semplificando la soluzione del problema (<noindex><a rel=\"nofollow\" href=\"http:\/\/www.intersystems.ru\/press\/2013\/gaia-mission-1yr-later.html\">1<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"http:\/\/intersystems.ru\/cache\/technology\/techguide\/cache_tech-guide_01.html\">2<\/a><\/noindex>).<\/p>\n<p>I globali rappresentano un modo speciale di memorizzare e elaborare i dati, completamente diverso dalle tabelle SQL. Sono stati introdotti nel 1966 nel linguaggio <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/MUMPS\">M(UMPS)<\/a><\/noindex> (evoluzione di - <noindex><a rel=\"nofollow\" href=\"http:\/\/www.intersystems.com\/our-products\/cache\/tech-guide\/chapter-3\/#cache-objectscript\">Cach\u00e9 ObjectScript<\/a><\/noindex>, poi COS) nelle banche dati mediche e sono ancora ampiamente utilizzati <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/VistA\">, oltre a essere penetrati in alcune altre aree dove sono richiesti affidabilit\u00e0 e alte prestazioni: finanza, trading, ecc.<\/a><\/noindex>I globali nei moderni DBMS supportano transazioni, logging, replicazione e partizionamento. Ovvero, su di essi \u00e8 possibile costruire sistemi moderni, affidabili, distribuiti e veloci.<\/p>\n<p>I database moderni supportano transazioni, registrazione, replica, partizionamento. Cio\u00e8, su di essi \u00e8 possibile costruire sistemi moderni, affidabili, distribuiti e veloci.<\/p>\n<p>I globali non ti limitano ai confini del modello relazionale. Ti danno la libert\u00e0 di sviluppare strutture dati ottimizzate per compiti specifici. Per molte applicazioni, un uso intelligente dei globali pu\u00f2 essere una vera arma segreta, offrendo prestazioni che gli sviluppatori di applicazioni relazionali possono solo sognare.<\/p>\n<p>I globali come metodo di archiviazione dei dati possono essere utilizzati in molti linguaggi di programmazione moderni, sia ad alto che a basso livello. In questo articolo mi concentrer\u00f2 proprio sui globali, e non sul linguaggio da cui sono originati.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>2. Come funzionano i globali<\/h2>\n<p>\nIniziamo a capire come funzionano i globali e quali sono i loro punti di forza. I globali possono essere visti da diverse prospettive. In questa parte dell'articolo li considereremo come alberi. O come archivi di dati gerarchici.<\/p>\n<p>In termini semplici, un globale \u00e8 un array persistente. Un array che si salva automaticamente su disco.<br \/>\n\u00c8 difficile immaginare qualcosa di pi\u00f9 semplice per la memorizzazione dei dati. In code (nei linguaggi COS\/M) si differenzia da un normale array associativo solo per un simbolo <b>^<\/b> prima del nome.<\/p>\n<p>Per memorizzare i dati nel globale non \u00e8 necessario studiare il linguaggio delle query SQL; i comandi per lavorarci sono molto semplici. Possono essere appresi in un'ora. <\/p>\n<p>Iniziamo con il pi\u00f9 semplice esempio. Un albero a un livello con 2 rami. Gli esempi sono scritti in COS.<\/p>\n<p><img decoding=\"async\" alt=\"I Globali \u2014 spade-treasure per la conservazione dei dati. Alberi. Parte 1\" src=\"\/wp-content\/uploads\/2019\/07\/5e1503716eac1eaadf49fcf3651e7fbf.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<pre><code class=\"bash\">Set ^a(\"+7926X\") = \"John Sidorov\"\nSet ^a(\"+7916Y\") = \"Sergey Smith\"<\/code><\/pre>\n<p><br clear=\"left\"\/><br \/>\nQuando si inseriscono informazioni nel globale (comando Set) avvengono automaticamente 3 cose:<\/p>\n<ol>\n<li><b>Memorizzazione dei dati su disco.<\/b>\n<\/li>\n<li><b>Indicizzazione.<\/b> Ci\u00f2 che \u00e8 tra parentesi funge da chiave (nella letteratura anglofona - \"subscript\"), e a destra dell'uguale c'\u00e8 il valore (\"node value\").\n<\/li>\n<li><b>Ordinamento.<\/b> I dati sono ordinati per chiave. In seguito, durante l'attraversamento dell'array, il primo elemento sar\u00e0 \"Sergey Smith\" e il secondo \"John Sidorov\". Quando si ottiene un elenco di utenti dal globale, il database non perde tempo nell'ordinamento. Inoltre, si pu\u00f2 richiedere l'output di un elenco ordinato, a partire da qualsiasi chiave, anche non esistente (l'output inizier\u00e0 dalla prima chiave reale che segue quella non esistente).\n<\/li>\n<\/ol>\n<p>\nTutte queste operazioni avvengono incredibilmente velocemente. Sul computer di casa ho ottenuto valori fino a 750.000 inserimenti\/sec in un solo processo. Su processori multi-core, i valori possono raggiungere <noindex><a rel=\"nofollow\" href=\"http:\/\/habrahabr.ru\/company\/intersystems\/blog\/257501\/\">decine di milioni<\/a><\/noindex> inserimenti\/sec.<\/p>\n<p>Certo, la velocit\u00e0 di inserimento da sola dice poco. Ad esempio, \u00e8 possibile scrivere molto rapidamente informazioni in file di testo \u2014 cos\u00ec <noindex><a rel=\"nofollow\" href=\"http:\/\/habrahabr.ru\/post\/176345\/#comment_6220633\">secondo voci<\/a><\/noindex> funziona il processamento di Visa. Ma nel caso dei globali otteniamo come risultato un deposito strutturato e indicizzato, con cui \u00e8 possibile lavorare in modo semplice e veloce in seguito.<\/p>\n<p><img decoding=\"async\" alt=\"I Globali \u2014 spade-treasure per la conservazione dei dati. Alberi. Parte 1\" src=\"\/wp-content\/uploads\/2019\/07\/ce447c81cf3a7d570518711c7103dbf0.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<ul>\n<li><b>Il punto di forza dei globali \u00e8 la velocit\u00e0 di inserimento di nuovi nodi.<\/b>\n<\/li>\n<li><b>I dati nei globali sono sempre indicizzati. Il loro attraversamento, sia a livello che in profondit\u00e0 nell'albero, \u00e8 sempre rapido.<\/b><\/li>\n<\/ul>\n<p>\nAggiungiamo al globale ancora alcuni rami di secondo e terzo livello.<\/p>\n<pre><code class=\"bash\">Set ^a(\"+7926X\", \"city\") = \"Moscow\"\nSet ^a(\"+7926X\", \"city\", \"street\") = \"Req Square\"\nSet ^a(\"+7926X\", \"age\") = 25\nSet ^a(\"+7916Y\", \"city\") = \"London\"\nSet ^a(\"+7916Y\", \"city\", \"street\") = \"Baker Street\"\nSet ^a(\"+7916Y\", \"age\") = 36<\/code><\/pre>\n<p>\n<img decoding=\"async\" alt=\"I Globali \u2014 spade-treasure per la conservazione dei dati. Alberi. Parte 1\" src=\"\/wp-content\/uploads\/2019\/07\/47244a6d96b589ada53ba9f53b2b3a2f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u00c8 evidente che sulla base delle variabili globali si possono costruire alberi a pi\u00f9 livelli. Inoltre, l'accesso a qualsiasi nodo \u00e8 praticamente istantaneo grazie all'autoindicizzazione durante l'inserimento. E a qualsiasi livello dell'albero, tutti i rami sono ordinati secondo la chiave.<\/p>\n<p>Come si pu\u00f2 notare, le informazioni possono essere conservate sia nella chiave che nel valore. La lunghezza totale della chiave (la somma delle lunghezze di tutti gli indici) pu\u00f2 raggiungere <noindex><a rel=\"nofollow\" href=\"http:\/\/docs.intersystems.com\/ens20152\/csp\/docbook\/DocBook.UI.Page.cls?KEY=GGBL_structure#GGBL_structure_maxsubscrlen\">511 byte<\/a><\/noindex>, e i valori <noindex><a rel=\"nofollow\" href=\"http:\/\/docs.intersystems.com\/cache20152\/csp\/docbook\/DocBook.UI.Page.cls?KEY=GORIENT_appx_limits_long_string\">3,6 MB<\/a><\/noindex> per Cach\u00e9. Il numero di livelli nell'albero (numero di dimensioni) \u00e8 31.<\/p>\n<p>Un altro aspetto interessante. \u00c8 possibile costruire un albero senza specificare i valori dei nodi dei livelli superiori.<\/p>\n<p><img decoding=\"async\" alt=\"I Globali \u2014 spade-treasure per la conservazione dei dati. Alberi. Parte 1\" src=\"\/wp-content\/uploads\/2019\/07\/f37f81a87a13adb13bbd3583dda06928.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<pre><code class=\"bash\">Set ^b(\"a\", \"b\", \"c\", \"d\") = 1\nSet ^b(\"a\", \"b\", \"c\", \"e\") = 2\nSet ^b(\"a\", \"b\", \"f\", \"g\") = 3<\/code><\/pre>\n<p>\nI cerchi vuoti sono nodi a cui non \u00e8 stato assegnato alcun valore.<br clear=\"left\"\/><br \/>\nPer capire meglio le variabili globali, confrontiamole con altri alberi: quelli da giardino e quelli delle strutture gerarchiche dei file.<\/p>\n<p>Confrontiamo gli alberi delle variabili globali con le strutture gerarchiche a noi pi\u00f9 familiari: gli alberi che crescono nei giardini e nei campi, e le strutture dei file.<\/p>\n<p><img decoding=\"async\" alt=\"I Globali \u2014 spade-treasure per la conservazione dei dati. Alberi. Parte 1\" src=\"\/wp-content\/uploads\/2019\/07\/c6b00c70867c3eb2e2d8233e0fc6b6c6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCome possiamo vedere, negli alberi da giardino le foglie e i frutti si trovano solo alle estremit\u00e0 dei rami.<br \/>\nI file system \u2014 le informazioni sono memorizzate solo alle estremit\u00e0 dei rami, che sono i nomi completi dei file.<\/p>\n<p>Ecco la struttura dei dati del global.<\/p>\n<p><img decoding=\"async\" alt=\"I Globali \u2014 spade-treasure per la conservazione dei dati. Alberi. Parte 1\" src=\"\/wp-content\/uploads\/2019\/07\/288a5d964b4bf859944c0a0ecd000bc7.jpg\" style=\"display:block;margin: 0 auto;\" \/>Differenze:<\/p>\n<ol>\n<li><b>Nodi interni:<\/b> le informazioni nel global possono essere memorizzate in ogni nodo, non solo alle estremit\u00e0 dei rami.<\/li>\n<li><b>Nodi esterni:<\/b> il global deve avere valori definiti alle estremit\u00e0 dei rami, mentre gli alberi FS e gli alberi giardino non hanno questa necessit\u00e0.<\/li>\n<\/ol>\n<p><br clear=\"left\"\/><br \/>\nIn parte dei nodi interni, si pu\u00f2 dire che la struttura del global \u00e8 un sovrainsieme della struttura degli alberi dei nomi nei file system e negli alberi giardino. Cio\u00e8, pi\u00f9 flessibile.<\/p>\n<p>In generale, il global rappresenta <b>un albero ordinato con la possibilit\u00e0 di memorizzare dati in ogni nodo.<\/b>.<\/p>\n<p>Per comprendere meglio il funzionamento dei global, immaginiamo cosa succederebbe se i creatori dei file system utilizzassero per la memorizzazione delle informazioni un approccio simile a quello dei global?<\/p>\n<ol>\n<li>Eliminando un singolo file in una directory, verrebbe automaticamente eliminata la directory, cos\u00ec come tutte le directory superiori che contengono solo quella directory appena eliminata.\n<\/li>\n<li>La necessit\u00e0 di directory scomparirebbe. Esisterebbero semplicemente file con sottofile e file senza sottofile. Se si confronta con un albero normale, ogni ramo diventerebbe un frutto.\n<p><img decoding=\"async\" alt=\"I Globali \u2014 spade-treasure per la conservazione dei dati. Alberi. Parte 1\" src=\"\/wp-content\/uploads\/2019\/07\/8e5e5681c191869da23c32da6e6d8d7b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n\n<\/li>\n<li>Elementi come i file README.txt potrebbero non essere pi\u00f9 necessari. Tutto ci\u00f2 che \u00e8 necessario dire sul contenuto di una directory potrebbe essere incluso direttamente nel file della directory. Nello spazio dei percorsi, il nome del file \u00e8 indistinguibile dal nome della directory, quindi sarebbe possibile limitarsi a utilizzare solo file.\n<\/li>\n<li>La velocit\u00e0 di eliminazione delle directory con sottodirectory e file aumenterebbe notevolmente. Molte volte su Habr sono apparse articoli su quanto fosse lungo e difficile eliminare milioni di piccoli file (<noindex><a rel=\"nofollow\" href=\"http:\/\/habrahabr.ru\/post\/152193\/\">1<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"http:\/\/habrahabr.ru\/post\/157613\/\">2<\/a><\/noindex>). Tuttavia, se si realizzasse un pseudo-sistema di file a livello globale, questo richiederebbe secondi o frazioni di secondo. Quando ho testato l'eliminazione di sotto-alberi sul mio computer di casa, in 1 secondo riuscivo a eliminare da 96 a 341 milioni di nodi da un albero a due livelli su HDD (non SSD). Si tratta di eliminare una parte dell'albero, non semplicemente dell'intero file a livello globale.<\/li>\n<\/ol>\n<p>\n<img decoding=\"async\" alt=\"I Globali \u2014 spade-treasure per la conservazione dei dati. Alberi. Parte 1\" src=\"\/wp-content\/uploads\/2019\/07\/7f700eeafb3e552923139024f38c6661.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>L'eliminazione di sotto-alberi \u00e8 un'altra forte caratteristica dei globali. Per questo non \u00e8 necessaria la ricorsione.<\/b> Accade in modo incredibilmente veloce.<\/p>\n<p>Nel nostro albero, si potrebbe fare con un comando <b>Uccidi<\/b>.<\/p>\n<pre><code class=\"bash\">Kill ^a(\"+7926X\")<\/code><\/pre>\n<p>\n<img decoding=\"async\" alt=\"I Globali \u2014 spade-treasure per la conservazione dei dati. Alberi. Parte 1\" src=\"\/wp-content\/uploads\/2019\/07\/89d5b69c6e80832c6865824782d9754d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPer una migliore comprensione delle azioni che possiamo intraprendere con i globali, fornir\u00f2 una breve tabella.<\/p>\n<p>Comandi e funzioni principali per lavorare con i globali in COS<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/docs.intersystems.com\/cache20152\/csp\/docbook\/DocBook.UI.Page.cls?KEY=RCOS_cset\">Set<\/a><\/noindex><br \/>\nImpostazione dei rami fino al nodo (se non ancora definiti) e valore del nodo<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/docs.intersystems.com\/cache20152\/csp\/docbook\/DocBook.UI.Page.cls?KEY=RCOS_cmerge\">Merge<\/a><\/noindex><br \/>\nCopia di un sottoalbero<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/docs.intersystems.com\/cache20152\/csp\/docbook\/DocBook.UI.Page.cls?KEY=RCOS_ckill\">Uccidi<\/a><\/noindex><br \/>\nCancellazione di un sottoalbero<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/docs.intersystems.com\/cache20152\/csp\/docbook\/DocBook.UI.Page.cls?KEY=RCOS_czkill\">ZKill<\/a><\/noindex><br \/>\nEliminazione del valore di un nodo specifico. Il sottoalbero che esce dal nodo non viene toccato<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/docs.intersystems.com\/cache20152\/csp\/docbook\/DocBook.UI.Page.cls?KEY=RCOS_fquery\">$Query<\/a><\/noindex><br \/>\nVisita completa dell'albero approfondendo<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/docs.intersystems.com\/cache20152\/csp\/docbook\/DocBook.UI.Page.cls?KEY=RCOS_forder\">$Order<\/a><\/noindex><br \/>\nScorrimento dei rami di un nodo specifico<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/docs.intersystems.com\/cache20152\/csp\/docbook\/DocBook.UI.Page.cls?KEY=RCOS_fdata\">$Data<\/a><\/noindex><br \/>\nVerifica se il nodo \u00e8 definito<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/docs.intersystems.com\/cache20152\/csp\/docbook\/DocBook.UI.Page.cls?KEY=RCOS_fincrement\">$Increment<\/a><\/noindex><br \/>\nIncremento atomico del valore del nodo. Per evitare letture e scritture, per ACID. Recentemente si raccomanda di cambiare in <noindex><a rel=\"nofollow\" href=\"http:\/\/habrahabr.ru\/company\/intersystems\/blog\/263793\/\">$Sequence<\/a><\/noindex><\/p>\n<p>Grazie per l'attenzione, siamo pronti a rispondere alle vostre domande.<\/p>\n<p><b>Avvertenza<\/b>: <i>Questo articolo e i miei commenti sono solo il mio punto di vista e non rappresentano la posizione ufficiale della corporation InterSystems.<\/i><\/p>\n<p><i><b>Continuazione<\/b> <noindex><a rel=\"nofollow\" href=\"http:\/\/habrahabr.ru\/company\/intersystems\/blog\/264173\/\">I globali sono forzieri per la memorizzazione dei dati. Alberi. Parte 2<\/a><\/noindex>. Scoprirete quali tipi di dati possono essere visualizzati sui globali e quali compiti offrono il massimo vantaggio.<\/i><br \/>\n<br \/>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/intersystems\/blog\/263791\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0435 \u043c\u0435\u0447\u0438-\u043a\u043b\u0430\u0434\u0435\u043d\u0446\u044b \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u2014 \u0433\u043b\u043e\u0431\u0430\u043b\u044b \u2014 \u0434\u0430\u0432\u043d\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b, \u043d\u043e \u0434\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u043d\u0435\u043c\u043d\u043e\u0433\u0438\u0435 \u0443\u043c\u0435\u044e\u0442 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u0438\u043c\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0438\u043b\u0438 \u0432\u043e\u0432\u0441\u0435 \u043d\u0435 \u0432\u043b\u0430\u0434\u0435\u044e\u0442 \u044d\u0442\u0438\u043c \u0441\u0443\u043f\u0435\u0440\u043e\u0440\u0443\u0436\u0438\u0435\u043c. \u0415\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0433\u043b\u043e\u0431\u0430\u043b\u044b \u0432 \u0440\u0435\u0448\u0435\u043d\u0438\u0438 \u0442\u0435\u0445 \u0437\u0430\u0434\u0430\u0447, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u043d\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0440\u043e\u0448\u0438, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0432\u044b\u0434\u0430\u044e\u0449\u0438\u0445\u0441\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432. \u041b\u0438\u0431\u043e \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u043b\u0438\u0431\u043e \u0432 \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438 (1, 2). \u0413\u043b\u043e\u0431\u0430\u043b\u044b \u2014 \u044d\u0442\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":27434,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-36634","post","type-post","status-publish","format-standard","has-post-thumbnail","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=\"\u041d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0435 \u043c\u0435\u0447\u0438-\u043a\u043b\u0430\u0434\u0435\u043d\u0446\u044b \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u2014 \u0433\u043b\u043e\u0431\u0430\u043b\u044b \u2014 \u0434\u0430\u0432\u043d\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b, \u043d\u043e \u0434\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u043d\u0435\u043c\u043d\u043e\u0433\u0438\u0435 \u0443\u043c\u0435\u044e\u0442 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u0438\u043c\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0438\u043b\u0438 \u0432\u043e\u0432\u0441\u0435 \u043d\u0435 \u0432\u043b\u0430\u0434\u0435\u044e\u0442 \u044d\u0442\u0438\u043c \u0441\u0443\u043f\u0435\u0440\u043e\u0440\u0443\u0436\u0438\u0435\u043c. \u0415\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0433\u043b\u043e\u0431\u0430\u043b\u044b \u0432 \u0440\u0435\u0448\u0435\u043d\u0438\u0438 \u0442\u0435\u0445 \u0437\u0430\u0434\u0430\u0447, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u043d\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0440\u043e\u0448\u0438, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0432\u044b\u0434\u0430\u044e\u0449\u0438\u0445\u0441\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432. \u041b\u0438\u0431\u043e \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u043b\u0438\u0431\u043e \u0432 \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438 (1, 2). \u0413\u043b\u043e\u0431\u0430\u043b\u044b \u2014 \u044d\u0442\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439\" \/>\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\/it\/blog\/administrirovanie\/globaly-mechi-kladentsy-dlya-hraneniya-dannyh-derevya-chast-1\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\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\u0413\u043b\u043e\u0431\u0430\u043b\u044b \u2014 \u043c\u0435\u0447\u0438-\u043a\u043b\u0430\u0434\u0435\u043d\u0446\u044b \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445. \u0414\u0435\u0440\u0435\u0432\u044c\u044f. \u0427\u0430\u0441\u0442\u044c 1 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0435 \u043c\u0435\u0447\u0438-\u043a\u043b\u0430\u0434\u0435\u043d\u0446\u044b \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u2014 \u0433\u043b\u043e\u0431\u0430\u043b\u044b \u2014 \u0434\u0430\u0432\u043d\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b, \u043d\u043e \u0434\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u043d\u0435\u043c\u043d\u043e\u0433\u0438\u0435 \u0443\u043c\u0435\u044e\u0442 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u0438\u043c\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0438\u043b\u0438 \u0432\u043e\u0432\u0441\u0435 \u043d\u0435 \u0432\u043b\u0430\u0434\u0435\u044e\u0442 \u044d\u0442\u0438\u043c \u0441\u0443\u043f\u0435\u0440\u043e\u0440\u0443\u0436\u0438\u0435\u043c. \u0415\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0433\u043b\u043e\u0431\u0430\u043b\u044b \u0432 \u0440\u0435\u0448\u0435\u043d\u0438\u0438 \u0442\u0435\u0445 \u0437\u0430\u0434\u0430\u0447, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u043d\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0440\u043e\u0448\u0438, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0432\u044b\u0434\u0430\u044e\u0449\u0438\u0445\u0441\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432. \u041b\u0438\u0431\u043e \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u043b\u0438\u0431\u043e \u0432 \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438 (1, 2). \u0413\u043b\u043e\u0431\u0430\u043b\u044b \u2014 \u044d\u0442\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/globaly-mechi-kladentsy-dlya-hraneniya-dannyh-derevya-chast-1\" \/>\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=\"2019-10-31T19:12:47+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:12:47+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\udd47Globali \u2014 spade magiche per la conservazione dei dati. Alberi. Parte 1 | ProHoster","description":"Le vere spade a doppia lama dei database, i globali, sono da tempo note, ma ancora poche persone sanno come usarle efficacemente o non possiedono affatto questa superarma. Se si utilizzano i globali per risolvere i compiti per cui sono veramente bravi, si possono ottenere risultati straordinari. Sia in termini di prestazioni, sia semplificando la soluzione del problema (1, 2). I globali sono speciali","canonical_url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/globaly-mechi-kladentsy-dlya-hraneniya-dannyh-derevya-chast-1","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","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\u0413\u043b\u043e\u0431\u0430\u043b\u044b \u2014 \u043c\u0435\u0447\u0438-\u043a\u043b\u0430\u0434\u0435\u043d\u0446\u044b \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445. \u0414\u0435\u0440\u0435\u0432\u044c\u044f. \u0427\u0430\u0441\u0442\u044c 1 | ProHoster","og:description":"\u041d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0435 \u043c\u0435\u0447\u0438-\u043a\u043b\u0430\u0434\u0435\u043d\u0446\u044b \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u2014 \u0433\u043b\u043e\u0431\u0430\u043b\u044b \u2014 \u0434\u0430\u0432\u043d\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b, \u043d\u043e \u0434\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u043d\u0435\u043c\u043d\u043e\u0433\u0438\u0435 \u0443\u043c\u0435\u044e\u0442 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u0438\u043c\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0438\u043b\u0438 \u0432\u043e\u0432\u0441\u0435 \u043d\u0435 \u0432\u043b\u0430\u0434\u0435\u044e\u0442 \u044d\u0442\u0438\u043c \u0441\u0443\u043f\u0435\u0440\u043e\u0440\u0443\u0436\u0438\u0435\u043c. \u0415\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0433\u043b\u043e\u0431\u0430\u043b\u044b \u0432 \u0440\u0435\u0448\u0435\u043d\u0438\u0438 \u0442\u0435\u0445 \u0437\u0430\u0434\u0430\u0447, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u043d\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0440\u043e\u0448\u0438, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0432\u044b\u0434\u0430\u044e\u0449\u0438\u0445\u0441\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432. \u041b\u0438\u0431\u043e \u0432 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u043b\u0438\u0431\u043e \u0432 \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438 (1, 2). \u0413\u043b\u043e\u0431\u0430\u043b\u044b \u2014 \u044d\u0442\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439","og:url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/globaly-mechi-kladentsy-dlya-hraneniya-dannyh-derevya-chast-1","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":"2019-10-31T19:12:47+00:00","article:modified_time":"2019-10-31T19:12:47+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"36634","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-22 04:13:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:41:52","updated":"2026-01-22 04:13:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/36634","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=36634"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/36634\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/27434"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=36634"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=36634"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=36634"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}