forked from docs/doc-exports
Reviewed-by: Pruthi, Vineet <vineet.pruthi@t-systems.com> Co-authored-by: luhuayi <luhuayi@huawei.com> Co-committed-by: luhuayi <luhuayi@huawei.com>
89 lines
15 KiB
HTML
89 lines
15 KiB
HTML
<a name="EN-US_TOPIC_0000001813439156"></a><a name="EN-US_TOPIC_0000001813439156"></a>
|
|
|
|
<h1 class="topictitle1">Row-Store/Column-Store Table Compression</h1>
|
|
<div id="body8662426"><p id="EN-US_TOPIC_0000001813439156__en-us_topic_0000001448662801_p993518218358">In GaussDB(DWS), only column-store tables can be compressed. Row-store tables cannot be compressed. The row-column storage compression mechanism is optimized. DSC performs adaptation based on GaussDB(DWS) features during migration.</p>
|
|
<p id="EN-US_TOPIC_0000001813439156__en-us_topic_0000001448662801_p15307105223719">Compression parameters:</p>
|
|
<p id="EN-US_TOPIC_0000001813439156__en-us_topic_0000001448662801_p10151706188"><a href="dws_16_0016.html#EN-US_TOPIC_0000001860318481__en-us_topic_0000001434418777_li186211955102212">table.compress.mode.</a> If keyword <strong id="EN-US_TOPIC_0000001813439156__en-us_topic_0000001448662801_b208709080632050">COMPRESS</strong> is specified in <strong id="EN-US_TOPIC_0000001813439156__en-us_topic_0000001448662801_b43269407432050">CREATE TABLE</strong>, the compression feature will be triggered in the case of bulk <strong id="EN-US_TOPIC_0000001813439156__en-us_topic_0000001448662801_b167652792132050">INSERT</strong> operations. If this feature is enabled, a scan will be performed on all tuple data within the page to generate a dictionary and then the tuple data will be compressed and stored. If <strong id="EN-US_TOPIC_0000001813439156__en-us_topic_0000001448662801_b191145031132050">NOCOMPRESS</strong> is used, tables will not be compressed.</p>
|
|
<p id="EN-US_TOPIC_0000001813439156__en-us_topic_0000001448662801_p132633593417"><a href="dws_16_0016.html#EN-US_TOPIC_0000001860318481__en-us_topic_0000001434418777_li7638164673410">table.compress.row</a> and <a href="dws_16_0016.html#EN-US_TOPIC_0000001860318481__en-us_topic_0000001434418777_li06731353153514">table.compress.column</a> determine the compression level, which determines the compression ratio and duration. Generally, the higher the level of compression, the higher the ratio, the longer the duration, vice versa. The actual compression ratio depends on the distribution mode of table data loaded.</p>
|
|
<p id="EN-US_TOPIC_0000001813439156__en-us_topic_0000001448662801_p263911451183"><a href="dws_16_0016.html#EN-US_TOPIC_0000001860318481__en-us_topic_0000001434418777_li8585858112211">table.compress.level</a> determines the compression sublevel, which determines the table data compression ratio and duration. A compression level is divided into sublevels, providing more choices for the compression ratio and duration. As the value becomes larger, the compression ratio becomes higher and duration longer at the same compression level.</p>
|
|
<p id="EN-US_TOPIC_0000001813439156__en-us_topic_0000001448662801_p73691243103819"><strong id="EN-US_TOPIC_0000001813439156__en-us_topic_0000001448662801_b1836934311389">Input example of a row-store table</strong></p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001813439156__en-us_topic_0000001448662801_screen1636914315387"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span>
|
|
<span class="normal">3</span>
|
|
<span class="normal">4</span>
|
|
<span class="normal">5</span>
|
|
<span class="normal">6</span>
|
|
<span class="normal">7</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">DROP</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="k">EXISTS</span><span class="w"> </span><span class="o">`</span><span class="k">public</span><span class="o">`</span><span class="p">.</span><span class="o">`</span><span class="n">runoob_tbl</span><span class="o">`</span><span class="p">;</span>
|
|
<span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">EXISTS</span><span class="w"> </span><span class="o">`</span><span class="k">public</span><span class="o">`</span><span class="p">.</span><span class="o">`</span><span class="n">runoob_tbl</span><span class="o">`</span><span class="p">(</span>
|
|
<span class="w"> </span><span class="o">`</span><span class="n">runoob_id</span><span class="o">`</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">,</span>
|
|
<span class="w"> </span><span class="o">`</span><span class="n">runoob_title</span><span class="o">`</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">100</span><span class="p">)</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="p">,</span>
|
|
<span class="w"> </span><span class="o">`</span><span class="n">runoob_author</span><span class="o">`</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">40</span><span class="p">)</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="p">,</span>
|
|
<span class="w"> </span><span class="o">`</span><span class="n">submission_date</span><span class="o">`</span><span class="w"> </span><span class="nb">VARCHAR</span>
|
|
<span class="p">)</span><span class="n">ENGINE</span><span class="o">=</span><span class="n">InnoDB</span><span class="w"> </span><span class="k">DEFAULT</span><span class="w"> </span><span class="n">CHARSET</span><span class="o">=</span><span class="n">utf8</span><span class="p">;</span>
|
|
</pre></div></td></tr></table></div>
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000001813439156__en-us_topic_0000001448662801_p73701743123814"><strong id="EN-US_TOPIC_0000001813439156__en-us_topic_0000001448662801_b93701743163814">Output example of a row-store table</strong></p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001813439156__en-us_topic_0000001448662801_screen203709431384"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span>
|
|
<span class="normal">3</span>
|
|
<span class="normal">4</span>
|
|
<span class="normal">5</span>
|
|
<span class="normal">6</span>
|
|
<span class="normal">7</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">DROP</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="k">EXISTS</span><span class="w"> </span><span class="ss">"public"</span><span class="p">.</span><span class="ss">"runoob_tbl"</span><span class="p">;</span>
|
|
<span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">EXISTS</span><span class="w"> </span><span class="ss">"public"</span><span class="p">.</span><span class="ss">"runoob_tbl"</span><span class="w"> </span><span class="p">(</span>
|
|
<span class="w"> </span><span class="ss">"runoob_id"</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">,</span>
|
|
<span class="w"> </span><span class="ss">"runoob_title"</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">400</span><span class="p">)</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="p">,</span>
|
|
<span class="w"> </span><span class="ss">"runoob_author"</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">160</span><span class="p">)</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="p">,</span>
|
|
<span class="w"> </span><span class="ss">"submission_date"</span><span class="w"> </span><span class="nb">VARCHAR</span>
|
|
<span class="p">)</span><span class="w"> </span><span class="k">WITH</span><span class="w"> </span><span class="p">(</span><span class="n">ORIENTATION</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">ROW</span><span class="p">,</span><span class="w"> </span><span class="n">COMPRESSION</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">YES</span><span class="p">)</span><span class="w"> </span><span class="n">COMPRESS</span><span class="w"> </span><span class="n">DISTRIBUTE</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">HASH</span><span class="w"> </span><span class="p">(</span><span class="ss">"runoob_id"</span><span class="p">);</span>
|
|
</pre></div></td></tr></table></div>
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000001813439156__en-us_topic_0000001448662801_p158416408382"></p>
|
|
<p id="EN-US_TOPIC_0000001813439156__en-us_topic_0000001448662801_p46401768376"><strong id="EN-US_TOPIC_0000001813439156__en-us_topic_0000001448662801_b1664013673712">Input example of a column-store table</strong></p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001813439156__en-us_topic_0000001448662801_screen364015611376"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span>
|
|
<span class="normal">3</span>
|
|
<span class="normal">4</span>
|
|
<span class="normal">5</span>
|
|
<span class="normal">6</span>
|
|
<span class="normal">7</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">DROP</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="k">EXISTS</span><span class="w"> </span><span class="o">`</span><span class="k">public</span><span class="o">`</span><span class="p">.</span><span class="o">`</span><span class="n">runoob_tbl</span><span class="o">`</span><span class="p">;</span>
|
|
<span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">EXISTS</span><span class="w"> </span><span class="o">`</span><span class="k">public</span><span class="o">`</span><span class="p">.</span><span class="o">`</span><span class="n">runoob_tbl</span><span class="o">`</span><span class="p">(</span>
|
|
<span class="w"> </span><span class="o">`</span><span class="n">runoob_id</span><span class="o">`</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">,</span>
|
|
<span class="w"> </span><span class="o">`</span><span class="n">runoob_title</span><span class="o">`</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">100</span><span class="p">)</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="p">,</span>
|
|
<span class="w"> </span><span class="o">`</span><span class="n">runoob_author</span><span class="o">`</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">40</span><span class="p">)</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="p">,</span>
|
|
<span class="w"> </span><span class="o">`</span><span class="n">submission_date</span><span class="o">`</span><span class="w"> </span><span class="nb">VARCHAR</span>
|
|
<span class="p">)</span><span class="n">ENGINE</span><span class="o">=</span><span class="n">InnoDB</span><span class="w"> </span><span class="k">DEFAULT</span><span class="w"> </span><span class="n">CHARSET</span><span class="o">=</span><span class="n">utf8</span><span class="p">;</span>
|
|
</pre></div></td></tr></table></div>
|
|
</div>
|
|
<p id="EN-US_TOPIC_0000001813439156__en-us_topic_0000001448662801_p186401060379"><strong id="EN-US_TOPIC_0000001813439156__en-us_topic_0000001448662801_b664012693717">Output example of a column-store table</strong></p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001813439156__en-us_topic_0000001448662801_screen96401763378"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
|
<span class="normal"> 2</span>
|
|
<span class="normal"> 3</span>
|
|
<span class="normal"> 4</span>
|
|
<span class="normal"> 5</span>
|
|
<span class="normal"> 6</span>
|
|
<span class="normal"> 7</span>
|
|
<span class="normal"> 8</span>
|
|
<span class="normal"> 9</span>
|
|
<span class="normal">10</span>
|
|
<span class="normal">11</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">DROP</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="k">EXISTS</span><span class="w"> </span><span class="ss">"public"</span><span class="p">.</span><span class="ss">"runoob_tbl"</span><span class="p">;</span>
|
|
<span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">EXISTS</span><span class="w"> </span><span class="ss">"public"</span><span class="p">.</span><span class="ss">"runoob_tbl"</span><span class="w"> </span><span class="p">(</span>
|
|
<span class="w"> </span><span class="ss">"runoob_id"</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">,</span>
|
|
<span class="w"> </span><span class="ss">"runoob_title"</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">400</span><span class="p">)</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="p">,</span>
|
|
<span class="w"> </span><span class="ss">"runoob_author"</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">160</span><span class="p">)</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="p">,</span>
|
|
<span class="w"> </span><span class="ss">"submission_date"</span><span class="w"> </span><span class="nb">VARCHAR</span>
|
|
<span class="p">)</span><span class="w"> </span><span class="k">WITH</span><span class="w"> </span><span class="p">(</span>
|
|
<span class="w"> </span><span class="n">COMPRESSLEVEL</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span>
|
|
<span class="w"> </span><span class="n">ORIENTATION</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">COLUMN</span><span class="p">,</span>
|
|
<span class="w"> </span><span class="n">COMPRESSION</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">LOW</span>
|
|
<span class="p">)</span><span class="w"> </span><span class="n">DISTRIBUTE</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">HASH</span><span class="w"> </span><span class="p">(</span><span class="ss">"runoob_id"</span><span class="p">);</span>
|
|
</pre></div></td></tr></table></div>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="familylinks">
|
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="dws_16_0119.html">Table (Optional Parameters and Operations)</a></div>
|
|
</div>
|
|
</div>
|
|
|