{"id":114563,"date":"2024-03-25T18:26:02","date_gmt":"2024-03-25T16:26:02","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/eksperiment-s-ispolzovaniem-sqlite-v-kachestve-kontejnera-dlya-arhivirovaniya-fajlov"},"modified":"2024-03-25T18:26:02","modified_gmt":"2024-03-25T16:26:02","slug":"eksperiment-s-ispolzovaniem-sqlite-v-kachestve-kontejnera-dlya-arhivirovaniya-fajlov","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pt\/blog\/news\/eksperiment-s-ispolzovaniem-sqlite-v-kachestve-kontejnera-dlya-arhivirovaniya-fajlov","title":{"rendered":"Experimento com o uso do SQLite como cont\u00eainer para arquivamento de arquivos.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>O projeto Pack tentou criar um formato de compacta\u00e7\u00e3o de arquivos baseado na biblioteca SQLite e no algoritmo de compress\u00e3o ZSTD (Zstandard). O prot\u00f3tipo preparado, escrito na linguagem Pascal e distribu\u00eddo sob a licen\u00e7a Apache 2.0, superou em velocidade os utilit\u00e1rios de compacta\u00e7\u00e3o mais comuns, sendo que seu funcionamento se restringia \u00e0 leitura de dados, compress\u00e3o pela biblioteca libzstd e execu\u00e7\u00e3o de opera\u00e7\u00f5es SQL para adicionar os dados compactados ao arquivo com o banco de dados SQLite.      <\/p>\n<p>Ao compactar um diret\u00f3rio com 81 mil arquivos, totalizando 1,25 GB, o Pack se mostrou 112 vezes mais r\u00e1pido que a ferramenta ZIP, completando a opera\u00e7\u00e3o em 1,3 segundos, em compara\u00e7\u00e3o com 146 segundos do ZIP. O tamanho do arquivo compactado pelo Pack foi 23% menor (194 MB no Pack e 253 MB no ZIP). Para compara\u00e7\u00e3o, a ferramenta tar fez a compacta\u00e7\u00e3o em 4,7 segundos sem compress\u00e3o e em 28,5 segundos com compress\u00e3o gzip, enquanto o compactador RAR levou 27,5 segundos para concluir o teste e o 7z, 54,2 segundos. Os tamanhos dos arquivos compactados foram: tar.gz \u2014 214 MB, RAR \u2014 235 MB, 7z \u2014 135 MB. Observa-se que, em termos de velocidade de descompacta\u00e7\u00e3o e acesso aleat\u00f3rio a arquivos, o Pack tamb\u00e9m supera outros compactadores, consumindo menos mem\u00f3ria RAM no processo. ZIP: 253 MB, 146 s 7z: 135 MB, 54,2 s mais r\u00e1pido que o ZIP em 2,7 vezes tar.gz: 214 MB, 28,5 s x 5,1 RAR: 235 MB, 27,5 s x 5,3 tar: 1345 MB, 4,7 s x 31 Pack: 194 MB, 1,3 s x 112      <\/p>\n<p>N\u00e3o h\u00e1 men\u00e7\u00e3o ao impacto do cache de arquivos nos resultados do teste. Provavelmente, a baixa velocidade do ZIP se deve \u00e0 ordem de execu\u00e7\u00e3o dos testes, sem considerar o cache de dados na mem\u00f3ria \u2014 o teste com zip foi realizado com cache frio, enquanto os outros testes foram feitos com cache aquecido. Em condi\u00e7\u00f5es normais, o Zstandard demonstra uma velocidade de compress\u00e3o de 3 a 5 vezes superior \u00e0 do zlib e uma descompress\u00e3o duas vezes mais r\u00e1pida, com n\u00edveis de compress\u00e3o superiores em 10-15%.       <\/p>\n<p>Adendo: Uma ideia semelhante de armazenar arquivos compactados como blobs em um banco de dados SQLite foi implementada em 2014 no compactador sqlar, criado pelos desenvolvedores do SQLite como um experimento para avaliar a efici\u00eancia do armazenamento de blobs no SQLite. No sqlar, a compress\u00e3o usa zlib e o tamanho dos arquivos \u00e9 aproximadamente 2% maior do que o da ferramenta ZIP.<br \/>\n<br \/>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=60842\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u043e\u0435\u043a\u0442 Pack \u043f\u0440\u0435\u0434\u043f\u0440\u0438\u043d\u044f\u043b \u043f\u043e\u043f\u044b\u0442\u043a\u0443 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u0434\u043b\u044f \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432, \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0433\u043e \u043d\u0430 \u0431\u0430\u0437\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 SQLite \u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0441\u0436\u0430\u0442\u0438\u044f ZSTD (Zstandard). \u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Pascal \u0438 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u043c\u044b\u0439 \u043f\u043e\u0434 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439 Apache 2.0, \u043e\u0431\u043e\u0433\u043d\u0430\u043b \u043f\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0430\u0440\u0445\u0438\u0432\u043e\u0432 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0451\u043d\u043d\u044b\u0435 \u0430\u0440\u0445\u0438\u0432\u0430\u0442\u043e\u0440\u044b, \u043f\u0440\u0438 \u0442\u043e\u043c, \u0447\u0442\u043e \u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u0430 \u0441\u0432\u043e\u0434\u0438\u043b\u0430\u0441\u044c \u043a \u0447\u0442\u0435\u043d\u0438\u044e \u0434\u0430\u043d\u043d\u044b\u0445, \u0441\u0436\u0430\u0442\u0438\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439 libzstd \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044e SQL-\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u043f\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":[702],"tags":[],"class_list":["post-114563","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u043e\u0435\u043a\u0442 Pack \u043f\u0440\u0435\u0434\u043f\u0440\u0438\u043d\u044f\u043b \u043f\u043e\u043f\u044b\u0442\u043a\u0443 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u0434\u043b\u044f \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432, \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0433\u043e \u043d\u0430 \u0431\u0430\u0437\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 SQLite \u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0441\u0436\u0430\u0442\u0438\u044f ZSTD (Zstandard).\" \/>\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\/pt\/blog\/news\/eksperiment-s-ispolzovaniem-sqlite-v-kachestve-kontejnera-dlya-arhivirovaniya-fajlov\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\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\u042d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c SQLite \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0434\u043b\u044f \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u043e\u0435\u043a\u0442 Pack \u043f\u0440\u0435\u0434\u043f\u0440\u0438\u043d\u044f\u043b \u043f\u043e\u043f\u044b\u0442\u043a\u0443 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u0434\u043b\u044f \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432, \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0433\u043e \u043d\u0430 \u0431\u0430\u0437\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 SQLite \u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0441\u0436\u0430\u0442\u0438\u044f ZSTD (Zstandard).\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pt\/blog\/news\/eksperiment-s-ispolzovaniem-sqlite-v-kachestve-kontejnera-dlya-arhivirovaniya-fajlov\" \/>\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=\"2024-03-25T16:26:02+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2024-03-25T16:26:02+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\udd47Experimento com o uso do SQLite como cont\u00eainer para compacta\u00e7\u00e3o de arquivos | ProHoster","description":"O projeto Pack tentou criar um formato de compacta\u00e7\u00e3o de arquivos baseado na biblioteca SQLite e no algoritmo de compress\u00e3o ZSTD (Zstandard).","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/news\/eksperiment-s-ispolzovaniem-sqlite-v-kachestve-kontejnera-dlya-arhivirovaniya-fajlov","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","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\u042d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c SQLite \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0434\u043b\u044f \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432 | ProHoster","og:description":"\u041f\u0440\u043e\u0435\u043a\u0442 Pack \u043f\u0440\u0435\u0434\u043f\u0440\u0438\u043d\u044f\u043b \u043f\u043e\u043f\u044b\u0442\u043a\u0443 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u0434\u043b\u044f \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432, \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0433\u043e \u043d\u0430 \u0431\u0430\u0437\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 SQLite \u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0441\u0436\u0430\u0442\u0438\u044f ZSTD (Zstandard).","og:url":"https:\/\/prohoster.info\/pt\/blog\/news\/eksperiment-s-ispolzovaniem-sqlite-v-kachestve-kontejnera-dlya-arhivirovaniya-fajlov","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":"2024-03-25T16:26:02+00:00","article:modified_time":"2024-03-25T16:26:02+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":[],"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/114563","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=114563"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/114563\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=114563"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=114563"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=114563"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}