2
.\" Title: \fBmyisampack\fR
3
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
4
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
6
.\" Manual: MySQL Database System
10
.TH "\FBMYISAMPACK\FR" "1" "03/01/2010" "MySQL 5\&.1" "MySQL Database System"
11
.\" -----------------------------------------------------------------
12
.\" * set default formatting
13
.\" -----------------------------------------------------------------
14
.\" disable hyphenation
16
.\" disable justification (adjust text to left margin only)
18
.\" -----------------------------------------------------------------
19
.\" * MAIN CONTENT STARTS HERE *
20
.\" -----------------------------------------------------------------
23
.\" tables: compressed
24
.\" MyISAM: compressed tables
26
myisampack \- generate compressed, read\-only MyISAM tables
28
.HP \w'\fBmyisampack\ [\fR\fB\fIoptions\fR\fR\fB]\ \fR\fB\fIfile_name\fR\fR\fB\ \&.\&.\&.\fR\ 'u
29
\fBmyisampack [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fIfile_name\fR\fR\fB \&.\&.\&.\fR
38
works by compressing each column in the table separately\&. Usually,
40
packs the data file 40%\(en70%\&.
42
When the table is used later, the server reads into memory the information needed to decompress columns\&. This results in much better performance when accessing individual rows, because you only have to uncompress exactly one row\&.
46
when possible to perform memory mapping on compressed tables\&. If
48
does not work, MySQL falls back to normal read/write file operations\&.
50
Please note the following:
62
server was invoked with external locking disabled, it is not a good idea to invoke
64
if the table might be updated by the server during the packing process\&. It is safest to compress tables with the server stopped\&.
75
After packing a table, it becomes read only\&. This is generally intended (such as when accessing packed tables on a CD)\&. Allowing writes to a packed table is on our TODO list, but with low priority\&.
86
shell> \fBmyisampack [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fIfile_name\fR\fR\fB \&.\&.\&.\fR
92
Each file name argument should be the name of an index (\&.MYI) file\&. If you are not in the database directory, you should specify the path name to the file\&. It is permissible to omit the
96
After you compress a table with
97
\fBmyisampack\fR, you should use
99
to rebuild its indexes\&.
100
\fBmyisamchk\fR(1)\&.
103
supports the following options\&. It also reads option files and supports the options for processing them described at
104
Section\ \&4.2.3.3.1, \(lqCommand-Line Options that Affect Option-File Handling\(rq\&.
114
.\" myisampack: help option
115
.\" help option: myisampack
119
Display a help message and exit\&.
130
.\" myisampack: backup option
131
.\" backup option: myisampack
135
Make a backup of each table\'s data file using the name
136
\fItbl_name\fR\&.OLD\&.
147
.\" myisampack: character-sets-dir option
148
.\" character-sets-dir option: myisampack
149
\fB\-\-character\-sets\-dir=\fR\fB\fIpath\fR\fR
151
The directory where character sets are installed\&. See
152
Section\ \&9.5, \(lqCharacter Set Configuration\(rq\&.
163
.\" myisampack: debug option
164
.\" debug option: myisampack
165
\fB\-\-debug[=\fR\fB\fIdebug_options\fR\fR\fB]\fR,
166
\fB\-# [\fR\fB\fIdebug_options\fR\fR\fB]\fR
168
Write a debugging log\&. A typical
171
\'d:t:o,\fIfile_name\fR\'\&. The default is
183
.\" myisampack: force option
184
.\" force option: myisampack
188
Produce a packed table even if it becomes larger than the original or if the intermediate file from an earlier invocation of
190
exists\&. (\fBmyisampack\fR
191
creates an intermediate file named
193
in the database directory while it compresses the table\&. If you kill
194
\fBmyisampack\fR, the
196
file might not be deleted\&.) Normally,
198
exits with an error if it finds that
203
packs the table anyway\&.
214
.\" myisampack: join option
215
.\" join option: myisampack
216
\fB\-\-join=\fR\fB\fIbig_tbl_name\fR\fR,
217
\fB\-j \fR\fB\fIbig_tbl_name\fR\fR
219
Join all tables named on the command line into a single packed table
220
\fIbig_tbl_name\fR\&. All tables that are to be combined
222
have identical structure (same column names and types, same indexes, and so forth)\&.
225
must not exist prior to the join operation\&. All source tables named on the command line to be merged into
227
must exist\&. The source tables are read for the join operation but not modified\&. The join operation does not create a
230
\fIbig_tbl_name\fR, so after the join operation finishes, copy the
232
file from one of the source tables and name it
233
\fIbig_tbl_name\fR\&.frm\&.
244
.\" myisampack: silent option
245
.\" silent option: myisampack
249
Silent mode\&. Write output only when errors occur\&.
260
.\" myisampack: test option
261
.\" test option: myisampack
265
Do not actually pack the table, just test packing it\&.
276
.\" myisampack: tmpdir option
277
.\" tmpdir option: myisampack
278
\fB\-\-tmpdir=\fR\fB\fIpath\fR\fR,
279
\fB\-T \fR\fB\fIpath\fR\fR
281
Use the named directory as the location where
283
creates temporary files\&.
294
.\" myisampack: verbose option
295
.\" verbose option: myisampack
299
Verbose mode\&. Write information about the progress of the packing operation and its result\&.
310
.\" myisampack: version option
311
.\" version option: myisampack
315
Display version information and exit\&.
326
.\" myisampack: wait option
327
.\" wait option: myisampack
331
Wait and retry if the table is in use\&. If the
333
server was invoked with external locking disabled, it is not a good idea to invoke
335
if the table might be updated by the server during the packing process\&.
337
.\" examples: compressed tables
339
The following sequence of commands illustrates a typical table compression session:
345
shell> \fBls \-l station\&.*\fR
346
\-rw\-rw\-r\-\- 1 monty my 994128 Apr 17 19:00 station\&.MYD
347
\-rw\-rw\-r\-\- 1 monty my 53248 Apr 17 19:00 station\&.MYI
348
\-rw\-rw\-r\-\- 1 monty my 5767 Apr 17 19:00 station\&.frm
349
shell> \fBmyisamchk \-dvv station\fR
352
Creation time: 1996\-03\-13 10:08:58
353
Recover time: 1997\-02\-02 3:06:43
354
Data records: 1192 Deleted blocks: 0
355
Datafile parts: 1192 Deleted data: 0
356
Datafile pointer (bytes): 2 Keyfile pointer (bytes): 2
357
Max datafile length: 54657023 Max keyfile length: 33554431
359
Record format: Fixed length
361
Key Start Len Index Type Root Blocksize Rec/key
362
1 2 4 unique unsigned long 1024 1024 1
363
2 32 30 multip\&. text 10240 1024 1
364
Field Start Length Type
422
shell> \fBmyisampack station\&.MYI\fR
423
Compressing station\&.MYI: (1192 records)
424
\- Calculating statistics
425
normal: 20 empty\-space: 16 empty\-zero: 12 empty\-fill: 11
426
pre\-space: 0 end\-space: 12 table\-lookups: 5 zero: 7
427
Original trees: 57 After join: 17
430
Remember to run myisamchk \-rq on compressed tables
431
shell> \fBls \-l station\&.*\fR
432
\-rw\-rw\-r\-\- 1 monty my 127874 Apr 17 19:00 station\&.MYD
433
\-rw\-rw\-r\-\- 1 monty my 55296 Apr 17 19:04 station\&.MYI
434
\-rw\-rw\-r\-\- 1 monty my 5767 Apr 17 19:00 station\&.frm
435
shell> \fBmyisamchk \-dvv station\fR
438
Creation time: 1996\-03\-13 10:08:58
439
Recover time: 1997\-04\-17 19:04:26
440
Data records: 1192 Deleted blocks: 0
441
Datafile parts: 1192 Deleted data: 0
442
Datafile pointer (bytes): 3 Keyfile pointer (bytes): 1
443
Max datafile length: 16777215 Max keyfile length: 131071
445
Record format: Compressed
447
Key Start Len Index Type Root Blocksize Rec/key
448
1 2 4 unique unsigned long 10240 1024 1
449
2 32 30 multip\&. text 54272 1024 1
450
Field Start Length Type Huff tree Bits
452
2 2 4 zerofill(1) 2 9
453
3 6 4 no zeros, zerofill(1) 2 9
455
5 11 20 table\-lookup 4 0
457
7 32 30 no endspace, not_always 5 9
458
8 62 35 no endspace, not_always, no empty 6 9
460
10 132 35 no endspace, not_always, no empty 6 9
461
11 167 4 zerofill(1) 2 9
462
12 171 16 no endspace, not_always, no empty 5 9
463
13 187 35 no endspace, not_always, no empty 6 9
464
14 222 4 zerofill(1) 2 9
465
15 226 16 no endspace, not_always, no empty 5 9
466
16 242 20 no endspace, not_always 8 9
467
17 262 20 no endspace, no empty 8 9
468
18 282 20 no endspace, no empty 5 9
469
19 302 30 no endspace, no empty 6 9
470
20 332 4 always zero 2 9
471
21 336 4 always zero 2 9
473
23 341 8 table\-lookup 9 0
474
24 349 8 table\-lookup 10 0
475
25 357 8 always zero 2 9
477
27 367 2 no zeros, zerofill(1) 2 9
478
28 369 4 no zeros, zerofill(1) 2 9
479
29 373 4 table\-lookup 11 0
481
31 378 2 no zeros, zerofill(1) 2 9
482
32 380 8 no zeros 2 9
483
33 388 4 always zero 2 9
484
34 392 4 table\-lookup 12 0
485
35 396 4 no zeros, zerofill(1) 13 9
486
36 400 4 no zeros, zerofill(1) 2 9
488
38 405 4 no zeros 2 9
489
39 409 4 always zero 2 9
490
40 413 4 no zeros 2 9
491
41 417 4 always zero 2 9
492
42 421 4 no zeros 2 9
493
43 425 4 always zero 2 9
494
44 429 20 no empty 3 9
495
45 449 30 no empty 3 9
498
48 481 79 no endspace, no empty 15 9
499
49 560 79 no empty 2 9
500
50 639 79 no empty 2 9
501
51 718 79 no endspace 16 9
502
52 797 8 no empty 2 9
505
55 807 20 no empty 3 9
506
56 827 4 no zeros, zerofill(2) 2 9
507
57 831 4 no zeros, zerofill(1) 2 9
514
displays the following kinds of information:
526
The number of columns for which no extra packing is used\&.
539
The number of columns containing values that are only spaces\&. These occupy one bit\&.
552
The number of columns containing values that are only binary zeros\&. These occupy one bit\&.
565
The number of integer columns that do not occupy the full byte range of their type\&. These are changed to a smaller type\&. For example, a
567
column (eight bytes) can be stored as a
569
column (one byte) if all its values are in the range from
585
The number of decimal columns that are stored with leading spaces\&. In this case, each value contains a count for the number of leading spaces\&.
598
The number of columns that have a lot of trailing spaces\&. In this case, each value contains a count for the number of trailing spaces\&.
611
The column had only a small number of different values, which were converted to an
613
before Huffman compression\&.
626
The number of columns for which all values are zero\&.
639
The initial number of Huffman trees\&.
652
The number of distinct Huffman trees left after joining trees to save some header space\&.
655
After a table has been compressed, the
658
\fBmyisamchk \-dvv\fR
659
include additional information about each column:
671
The data type\&. The value may contain any of the following descriptors:
683
All rows have the same value\&.
696
Do not store endspace\&.
707
no endspace, not_always
709
Do not store endspace and do not do endspace compression for all values\&.
720
no endspace, no empty
722
Do not store endspace\&. Do not store empty values\&.
735
The column was converted to an
751
bytes in the value are always 0 and are not stored\&.
764
Do not store zeros\&.
777
Zero values are stored using one bit\&.
791
The number of the Huffman tree associated with the column\&.
804
The number of bits used in the Huffman tree\&.
808
\fBmyisampack\fR, you must run
810
to re\-create any indexes\&. At this time, you can also sort the index blocks and create statistics needed for the MySQL optimizer to work more efficiently:
816
shell> \fBmyisamchk \-rq \-\-sort\-index \-\-analyze \fR\fB\fItbl_name\fR\fR\fB\&.MYI\fR
822
After you have installed the packed table into the MySQL database directory, you should execute
823
\fBmysqladmin flush\-tables\fR
826
to start using the new table\&.
828
To unpack a packed table, use the
835
Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc.
837
This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
839
This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
841
You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA or see http://www.gnu.org/licenses/.
844
For more information, please refer to the MySQL Reference Manual,
845
which may already be installed locally and which is also available
846
online at http://dev.mysql.com/doc/.
848
Sun Microsystems, Inc. (http://www.mysql.com/).