12 MySQL实用程序

[复制链接]
  • TA的每日心情
    慵懒
    2013-7-20 18:55
  • 签到天数: 2 天

    [LV.1]布衣百姓

    106

    主题

    331

    回帖

    3万

    积分

    [INTOHARD]师长

    相濡以沫

    Rank: 10Rank: 10Rank: 10

    积分
    35487

    优秀斑竹奖特殊贡献奖

    QQ
    发表于 2006-10-12 14:11:30 | 显示全部楼层 |阅读模式
      12.1 各种MySQL程序概述
    所有使用mysqlclient客户库与服务器通信的MySQL客户使用下列环境变量:

    名字  说明  
    MYSQL_UNIX_PORT  缺省套接字;用于连接localhost  
    MYSQL_TCP_PORT  缺省 TCP/IP 端口
    MYSQL_PWD  缺省口令
    MYSQL_DEBUG  调试时调试-踪迹选项
    TMPDIR  临时表/文件被创建的目录

    使用MYSQL_PWD是不安全的。见6.3 与MySQL服务器连接。

    “mysql”客户使用MYSQL_HISTFILE环境变量中命名的文件来保存命令行历史,历史文件的缺省值是“$HOME/.mysql_history”,这里$HOME是HOME环境变量的值。

    所有MySQL程序取许多不同的选项,然而,每个MySQL程序提供一个--help选项,你可以使用它得到程序不同选项的完整描述。例如,试一试mysql --help。

    你能用一个选项文件覆盖所有的标准客户程序的缺省选项。见4.15.4 选择文件。

    下表简单地描述MySQL程序:

    myisamchk
    描述、检查、优化和修复MySQL表的使用程序。因为myisamchk有许多功能,它在其自己的章节中描述。见13 维护MySQL安装。
    make_binary_release
    制作一个编译MySQL的一个二进制的版本。这能用FTP传送到在ftp.tcx.se网站的“/pub/mysql/Incoming”以方便其它MySQL用户。
    msql2mysql
    一个外壳脚本,转换mSQL程序到MySQL。它不能处理所有的情况,但是当转换时,它给出一个好起点。
    mysql
    mysql是一个简单的SQL外壳(具有GNU readline 能力),它支持交互式和非交互式使用。当交互地使用时,查询结果以ASCII表的格式被表示。当非交互地使用时(例如,作为一个过滤器),结果是以定位符分隔的格式表示。(输出格式可以使用命令行选项改变)你可以简单地象这样运行脚本:
    shell> mysql database < script.sql > output.tab

    如果你在客户中由于内存不足造成问题,使用--quick选项!这迫使mysql使用mysql_use_result()而非mysql_store_result()来检索结果集合。

    mysqlaccess
    一个脚本,检查对主机、用户和数据库组合的存取权限。
    mysqladmin
    执行管理操作的实用程序,例如创建或抛弃数据库,再装载授权表,清洗表到磁盘中和再打开日志文件。mysqladmin也可以被用来从服务器检索版本,进程和状态信息。见12.2 管理一个 MySQL 服务器。
    mysqlbug
    MySQL错误报告脚本。当填写一份错误报告到MySQL邮件列表时,应该总是使用该脚本。
    mysqld
    SQL守护进程。它应该一直在运行。
    mysqldump
    以SQL语句或定位符分隔的文本文件将一个MySQL数据库倾倒一个文件中。这是最早由Igor Romanenko编写的自由软件的增强版本。见12.3 从MySQL数据库和表倾倒结构和数据。
    mysqlimport
    使用LOAD DATA INFILE将文本文件倒入其各自的表中。见12.4 从文本文件导入数据。
    mysqlshow
    显示数据库,表,列和索引的信息。
    mysql_install_db
    以缺省权限创建MySQL授权表。这通常仅被执行一次。就是在系统上第一次安装MySQL时。
    replace
    一个实用程序,由msql2mysql使用,但是有更一般的适用性。replace改变文件中或标准输入上的字符串。使用一台有限状态机首先匹配更长的字符串,能被用来交换字符串。例如,这个命令在给定的文件中交换a和b:
    shell> replace a b b a -- file1 file2 ...

    safe_mysqld
    一个脚本,用某些更安全的特征启动mysqld守护进程,例如当一个错误发生时,重启服务器并且记载运行时刻信息到一个日志文件中。
    12.2 管理一个MySQL服务器
    用于执行管理性操作。语法是:

    shell> mysqladmin [OPTIONS] command [command-option] command ...

    通过执行mysqladmin --help,你可以得到你mysqladmin的版本所支持的一个选项列表。

    目前mysqladmin支持下列命令:

    create databasename  创建一个新数据库
    drop databasename  删除一个数据库及其所有表
    extended-status  给出服务器的一个扩展状态消息
    flush-hosts  洗掉所有缓存的主机
    flush-logs  洗掉所有日志  
    flush-tables  洗掉所有表  
    flush-privileges  再次装载授权表(同reload)  
    kill id,id,...  杀死mysql线程  
    password  新口令,将老口令改为新口令
    ping  检查mysqld是否活着  
    processlist  显示服务其中活跃线程列表
    reload  重载授权表  
    refresh  洗掉所有表并关闭和打开日志文件
    shutdown  关掉服务器  
    status  给出服务器的简短状态消息
    variables  打印出可用变量
    version  得到服务器的版本信息

    所有命令可以被缩短为其唯一的前缀。例如:

    shell> mysqladmin proc stat
    +----+-------+-----------+----+-------------+------+-------+------+
    | Id | User  | Host    | db | Command    | Time | State | Info |
    +----+-------+-----------+----+-------------+------+-------+------+
    | 6  | monty | localhost |   | Processlist | 0   |     |    |
    +----+-------+-----------+----+-------------+------+-------+------+
    Uptime: 10077  Threads: 1  Questions: 9  Slow queries: 0  Opens: 6  Flush tables: 1  
    Open tables: 2  Memory in use: 1092K  Max memory used: 1116K

    mysqladmin status命令结果有下述列:

    Uptime  MySQL服务器已经运行的秒数
    Threads  活跃线程(客户)的数量  
    Questions  从mysqld启动起来自客户问题的数量  
    Slow queries  已经超过long_query_time秒的查询数量  
    Opens  mysqld已经打开了多少表  
    Flush tables  flush ..., refresh和reload命令数量  
    Open tables  现在被打开的表数量
    Memory in use  由mysqld代码直接分配的内存(只有在MySQL用--with-debug编译时可用)  
    Max memory used  由mysqld代码直接分配的最大内存(只有在MySQL用--with-debug编译时可用)

    12.3 从MySQL数据库和表中倒出结构和数据
    实用程序,为备份或为把数据转移到另外的SQL服务器上倾倒一个数据库或许多数据库。倾倒将包含 创建表或充实表的SQL语句。

    shell> mysqldump [OPTIONS] database [tables]

    如果你不给定任何表,整个数据库将被倾倒。

    通过执行mysqldump --help,你能得到你mysqldump的版本支持的选项表。

    注意,如果你运行mysqldump没有--quick或--opt选项,mysqldump将在倾倒结果前装载整个结果集到内存中,如果你正在倾倒一个大的数据库,这将可能是一个问题。

    mysqldump支持下列选项:

    --add-locks
    在每个表倾倒之前增加LOCK TABLES并且之后UNLOCK TABLE。(为了使得更快地插入到MySQL)。
    --add-drop-table
    在每个create语句之前增加一个drop table。
    --allow-keywords
    允许创建是关键词的列名字。这由表名前缀于每个列名做到。
    -c, --complete-insert
    使用完整的insert语句(用列名字)。
    -C, --compress
    如果客户和服务器均支持压缩,压缩两者间所有的信息。
    --delayed
    用INSERT DELAYED命令插入行。
    -e, --extended-insert
    使用全新多行INSERT语法。(给出更紧缩并且更快的插入语句)
    -#, --debug[=option_string]
    跟踪程序的使用(为了调试)。
    --help
    显示一条帮助消息并且退出。
    --fields-terminated-by=...
     
    --fields-enclosed-by=...
     
    --fields-optionally-enclosed-by=...
     
    --fields-escaped-by=...
     
    --fields-terminated-by=...
    这些选择与-T选择一起使用,并且有相应的LOAD DATA INFILE子句相同的含义。见7.16 LOAD DATA INFILE语法。
    -F, --flush-logs
    在开始倾倒前,洗掉在MySQL服务器中的日志文件。
    -f, --force,
    即使我们在一个表倾倒期间得到一个SQL错误,继续。
    -h, --host=..
    从命名的主机上的MySQL服务器倾倒数据。缺省主机是localhost。
    -l, --lock-tables.
    为开始倾倒锁定所有表。
    -t, --no-create-info
    不写入表创建信息(CREATE TABLE语句)
    -d, --no-data
    不写入表的任何行信息。如果你只想得到一个表的结构的倾倒,这是很有用的!
    --opt
    同--quick --add-drop-table --add-locks --extended-insert --lock-tables。应该给你为读入一个MySQL服务器的尽可能最快的倾倒。
    -pyour_pass, --password[=your_pass]
    与服务器连接时使用的口令。如果你不指定“=your_pass”部分,mysqldump需要来自终端的口令。
    -P port_num, --port=port_num
    与一台主机连接时使用的TCP/IP端口号。(这用于连接到localhost以外的主机,因为它使用 Unix套接字。)
    -q, --quick
    不缓冲查询,直接倾倒至stdout;使用mysql_use_result()做它。
    -S /path/to/socket, --socket=/path/to/socket
    与localhost连接时(它是缺省主机)使用的套接字文件。
    -T, --tab=path-to-some-directory
    对于每个给定的表,创建一个table_name.sql文件,它包含SQL CREATE 命令,和一个table_name.txt文件,它包含数据。 注意:这只有在mysqldump运行在mysqld守护进程运行的同一台机器上的时候才工作。.txt文件的格式根据--fields-xxx和--lines--xxx选项来定。
    -u user_name, --user=user_name
    与服务器连接时,MySQL使用的用户名。缺省值是你的Unix登录名。
    -O var=option, --set-variable var=option
    设置一个变量的值。可能的变量被列在下面。
    -v, --verbose
    冗长模式。打印出程序所做的更多的信息。
    -V, --version
    打印版本信息并且退出。
    -w, --where=&#39;where-condition&#39;
    只倾倒被选择了的记录;注意引号是强制的!
    "--where=user=&#39;jimf&#39;" "-wuserid>1" "-wuserid<1"

    最常见的mysqldump使用可能制作整个数据库的一个备份:

    mysqldump --opt database > backup-file.sql

    但是它对用来自于一个数据库的信息充实另外一个MySQL数据库也是有用的:

    mysqldump --opt database | mysql --host=remote-host -C database

    12.4 从文本文件导入数据
    mysqlimport提供一个到LOAD DATA INFILESQL语句的命令行接口。mysqlimport的大多数选项直接对应于LOAD DATA INFILE的相同选项。见7.16 LOAD DATA INFILE语法。

    mysqlimport象这样调用:

    shell> mysqlimport [options] filename ...

    对于在命令行上命名的每个文本文件,mysqlimport剥去文件名的扩展名并且使用它决定哪个表导入文件的内容。例如,名为“patient.txt”、“patient.text”和“patient”将全部被导入名为patient的一个表中。

    mysqlimport支持下列选项:

    -C, --compress
    如果客户和服务器均支持压缩,压缩两者之间的所有信息。
    -#, --debug[=option_string]
    跟踪程序的使用(为调试)。
    -d, --delete
    在导入文本文件前倒空表格。
    --fields-terminated-by=...
     
    --fields-enclosed-by=...
     
    --fields-optionally-enclosed-by=...
     
    --fields-escaped-by=...
     
    --fields-terminated-by=...
    这些选项与对应于LOAD DATA INFILE的子句相同的含义。见7.16 LOAD DATA INFILE语法。
    -f, --force
    忽略错误。例如,如果对于一个文本文件的一个表不存在,继续处理任何余下的文件。没有--force,如果表不存在,mysqlimport退出。
    --help
    显示一条帮助消息并且退出。
    -h host_name, --host=host_name
    导入数据到命名的主机上的MySQL服务器。缺省主机是localhost。
    -i, --ignore
    见为--replace选项的描述。
    -l, --lock-tables
    在处理任何文本文件前为写入所定所有的表。这保证所有的表在服务器上被同步。
    -L, --local
    从客户读取输入文件。缺省地,如果你连接localhost(它是缺省主机),文本文件被假定在服务器上。
    -pyour_pass, --password[=your_pass]
    与服务器连接时使用的口令。如果你不指定“=your_pass”部分,mysqlimport要求来自终端的口令。
    -P port_num, --port=port_num
    与一台主机连接时使用的TCP/IP端口号。(这被用于连接到除localhost以外的主机,因为它使用Unix套接字。)
    -r, --replace
    --replace和--ignore选项控制对输入在唯一键值上有重复的现有记录的输入处理。如果你指定--replace,新行将代替有相同唯一键的存在的行。如果你指定--ignore,跳过输入在唯一键值上有重复的现有记录。如果你不指定任何一个选项,当找到一个重复的键值,出现一个错误,并且文本文件余下部分被忽略。
    -s, --silent
    安静模式。只有在错误发生时,写出输出。
    -S /path/to/socket, --socket=/path/to/socket
    与localhost(它是缺省主机)连接时使用的套接字文件。
    -u user_name, --user=user_name
    MySQL使用的用户名字当与服务者联接时。缺省价值是你的 Unix 登录名字。
    -v, --verbose
    冗长模式。打印程序所做的更多信息。
    -V, --version
    打印版本信息并且退出。
    以下是使用mysqlimport运行的一个样本:

    $ mysql --version
    mysql  Ver 9.33 Distrib 3.22.25, for pc-linux-gnu (i686)
    $ uname -a
    Linux xxx.com 2.2.5-15 #1 Mon Apr 19 22:21:09 EDT 1999 i586 unknown
    $ mysql -e &#39;CREATE TABLE imptest(id INT, n VARCHAR(30))&#39; test
    $ ed
    a
    100    Max Sydow
    101    Count Dracula
    .
    w imptest.txt
    32
    q
    $ od -c imptest.txt
    0000000  1  0  0  \t  M  a  x     S  y  d  o  w  \n  1  0
    0000020  1  \t  C  o  u  n  t     D  r  a  c  u  l  a  \n
    0000040
    $ mysqlimport --local test imptest.txt
    test.imptest: Records: 2  Deleted: 0  Skipped: 0  Warnings: 0
    $ mysql -e &#39;SELECT * FROM imptest&#39; test
    +------+---------------+
    | id  | n         |
    +------+---------------+
    |  100 | Max Sydow    |
    |  101 | Count Dracula |
    +------+---------------+

    12.5 MySQL压缩只读表生成器
    myisampack被用来压缩MyISAM表,而pack_isam被用来压缩ISAM表。由于ISAM表被淘汰,这里我们将只讨论myisampack。

    myisampack是当你订购超过10个许可证或扩展的支持时,你得到的一个额外的实用程序。因为这些仅以二进制形式被分发,他们仅在某些平台上可用。

    下面我们仅谈论myisampack, 但是每件事情对pack_isam也是持有的。

    myisampack通过单独压缩表中的每个列来工作。当表被打开时,需要加压缩的信息被读进内存,这使得在存取单个记录时能得到更好的性能,因为你只需要解压缩一个记录,不是更大的磁盘块,象在 MSDOS上使用Stacker时一样。通常,myisampack压缩数据文件40%-70%。

    MySQL使用内存映射(mmap())在压缩表上而如果mmap()的使用不工作,倒回到正常的读/写文件。

    当前myisampack有2个限制:

    在压缩后,表只能读。
    myisampack也能压缩BLOB或TEXT列。较老的pack_isam不能做到。
    修正这些限制以在我们的TODO表上,但是具有低优先级。

    myisampack象这样调用:

    shell> myisampack [options] filename ...

    每个文件名应该是一个索引(“.MYI”) 文件名。如果你不在数据库目录下,你应该指定文件的路径名。允许省略“.MYI”扩展名。

    myisampack支持下列选项:

    -b, --backup
    制作表的一个备份,为tbl_name.OLD。
    -#, --debug=debug_options
    输出调试日志。debug_options串经常是&#39;d:t:o,filename&#39;。
    -f, --force
    即使它变得更大或如果临时文件存在,强制表的压缩。(myisampack在压缩表时创建一个名位“tbl_name.TMD”的临时文件。如果你杀死myisampack,“.TMD”文件不能被删除。通常,如果myisampack发现“tbl_name.TMD”存在,它以一个错误退出。用--force,myisampack不管怎样都压缩表。
    -?, --help
    显示一条帮助消息并且退出。
    -j big_tbl_name, --join=big_tbl_name
    联结所有在命令行上被命名的表到一个单独的表big_tbl_name中。所有要被合并的表必须是相同的(同样的列名字和类型,同样的索引,等等。)
    -p #, --packlength=#
    指定记录长度存储尺寸,按字节。值应该是1、2或3。(myisampack用1、2或3字节的长度指针存储所有行。在最一般的情况下,myisampack在它开始包装文件以前,能确定正确的长度值,但是它可能注意到在包装过程期间,它能使用了更短的长度。在这种情况下,myisampack在下一次你包装同样文件时间打印出一条提示,你可以使用更短的记录长度。)
    -s, --silent
    安静模式。只有当错误发生时,写出输出。
    -t, --test
    不压缩表,仅仅测试压缩它。
    -T dir_name, --tmp_dir=dir_name
    使用命名的目录作为写入临时表的位置。
    -v, --verbose
    冗长模式。写出有关进展和包装结果的信息。
    -V, --version
    显示版本信息和出口。
    -w, --wait
    如果表正在使用,等待并且再试。如果mysqld服务器以--skip-locking选项被调用,如果表可能在包装过程中被更新,调用myisampack不是一个好主意。
    下面显示的命令顺序说明了一个典型的表压缩桌子压缩过程:

    shell> ls -l station.*
    -rw-rw-r--  1 monty   my      994128 Apr 17 19:00 station.MYD
    -rw-rw-r--  1 monty   my       53248 Apr 17 19:00 station.MYI
    -rw-rw-r--  1 monty   my        5767 Apr 17 19:00 station.frm

    shell> myisamchk -dvv station

    MyISAM file:    station
    Isam-version:  2
    Creation time: 1996-03-13 10:08:58
    Recover time:  1997-02-02  3:06:43
    Data records:          1192  Deleted blocks:          0
    Datafile: Parts:        1192  Deleted data:           0
    Datafile pointer (bytes):    2  Keyfile pointer (bytes):    2
    Max datafile length:  54657023  Max keyfile length:  33554431
    Recordlength:          834
    Record format: Fixed length

    table description:
    Key Start Len Index  Type                Root  Blocksize   Rec/key
    1  2    4  unique  unsigned long          1024     1024       1
    2  32   30  multip. text               10240     1024       1

    Field Start Length Type
    1    1    1
    2    2    4
    3    6    4
    4    10   1
    5    11   20
    6    31   1
    7    32   30
    8    62   35
    9    97   35
    10   132  35
    11   167  4
    12   171  16
    13   187  35
    14   222  4
    15   226  16
    16   242  20
    17   262  20
    18   282  20
    19   302  30
    20   332  4
    21   336  4
    22   340  1
    23   341  8
    24   349  8
    25   357  8
    26   365  2
    27   367  2
    28   369  4
    29   373  4
    30   377  1
    31   378  2
    32   380  8
    33   388  4
    34   392  4
    35   396  4
    36   400  4
    37   404  1
    38   405  4
    39   409  4
    40   413  4
    41   417  4
    42   421  4
    43   425  4
    44   429  20
    45   449  30
    46   479  1
    47   480  1
    48   481  79
    49   560  79
    50   639  79
    51   718  79
    52   797  8
    53   805  1
    54   806  1
    55   807  20
    56   827  4
    57   831  4

    shell> myisampack station.MYI
    Compressing station.MYI: (1192 records)
    - Calculating statistics

    normal:    20  empty-space:    16  empty-zero:      12  empty-fill:  11
    pre-space:  0  end-space:      12  table-lookups:    5  zero:      7
    Original trees:  57  After join: 17
    - Compressing file
    87.14%

    shell> ls -l station.*
    -rw-rw-r--  1 monty   my      127874 Apr 17 19:00 station.MYD
    -rw-rw-r--  1 monty   my       55296 Apr 17 19:04 station.MYI
    -rw-rw-r--  1 monty   my        5767 Apr 17 19:00 station.frm

    shell> myisamchk -dvv station

    MyISAM file:    station
    Isam-version:  2
    Creation time: 1996-03-13 10:08:58
    Recover time:  1997-04-17 19:04:26
    Data records:          1192  Deleted blocks:          0
    Datafile: Parts:        1192  Deleted data:           0
    Datafilepointer (bytes):    3  Keyfile pointer (bytes):    1
    Max datafile length:  16777215  Max keyfile length:    131071
    Recordlength:          834
    Record format: Compressed

    table description:
    Key Start Len Index  Type                Root  Blocksize   Rec/key
    1  2    4  unique  unsigned long         10240     1024       1
    2  32   30  multip. text               54272     1024       1

    Field Start Length Type                 Huff tree  Bits
    1    1    1    constant                    1    0
    2    2    4    zerofill(1)                  2    9
    3    6    4    no zeros, zerofill(1)           2    9
    4    10   1                             3    9
    5    11   20    table-lookup                 4    0
    6    31   1                             3    9
    7    32   30    no endspace, not_always          5    9
    8    62   35    no endspace, not_always, no empty   6    9
    9    97   35    no empty                    7    9
    10   132  35    no endspace, not_always, no empty   6    9
    11   167  4    zerofill(1)                  2    9
    12   171  16    no endspace, not_always, no empty   5    9
    13   187  35    no endspace, not_always, no empty   6    9
    14   222  4    zerofill(1)                  2    9
    15   226  16    no endspace, not_always, no empty   5    9
    16   242  20    no endspace, not_always          8    9
    17   262  20    no endspace, no empty           8    9
    18   282  20    no endspace, no empty           5    9
    19   302  30    no endspace, no empty           6    9
    20   332  4    always zero                  2    9
    21   336  4    always zero                  2    9
    22   340  1                             3    9
    23   341  8    table-lookup                 9    0
    24   349  8    table-lookup                10    0
    25   357  8    always zero                  2    9
    26   365  2                             2    9
    27   367  2    no zeros, zerofill(1)           2    9
    28   369  4    no zeros, zerofill(1)           2    9
    29   373  4    table-lookup                11    0
    30   377  1                             3    9
    31   378  2    no zeros, zerofill(1)           2    9
    32   380  8    no zeros                    2    9
    33   388  4    always zero                  2    9
    34   392  4    table-lookup                12    0
    35   396  4    no zeros, zerofill(1)          13    9
    36   400  4    no zeros, zerofill(1)           2    9
    37   404  1                             2    9
    38   405  4    no zeros                    2    9
    39   409  4    always zero                  2    9
    40   413  4    no zeros                    2    9
    41   417  4    always zero                  2    9
    42   421  4    no zeros                    2    9
    43   425  4    always zero                  2    9
    44   429  20    no empty                    3    9
    45   449  30    no empty                    3    9
    46   479  1                            14    4
    47   480  1                            14    4
    48   481  79    no endspace, no empty          15    9
    49   560  79    no empty                    2    9
    50   639  79    no empty                    2    9
    51   718  79    no endspace                 16    9
    52   797  8    no empty                    2    9
    53   805  1                            17    1
    54   806  1                             3    9
    55   807  20    no empty                    3    9
    56   827  4    no zeros, zerofill(2)           2    9
    57   831  4    no zeros, zerofill(1)           2    9

    由myisampack打印的信息在下面描述:

    normal
    不是用额外压缩的列数。
    empty-space
    仅包含空格值的列数;这些将占据1位。
    empty-zero
    只包含二进制0值的列数;这些将占据1位。
    empty-fill
    不占据其类型全部字节范围的整形列数;这些被改变为一种更小的类型(例如,一个INTEGER列可以被改变为MEDIUMINT)。
    pre-space
    用前导空间存储的小数的列数。在这种情况下,每个值将包含一个前导空格的数量的计数。
    end-space
    有很多拖后空格的列数。在这种情况下,每个值将包含一个拖后空格的数量的计数。
    table-lookup
    列只有少数不同的值,并且它在哈夫曼压缩前被变换一个ENUM。
    zero
    所有值为零的列数。
    Original trees
    哈夫曼树的初始数目。
    After join
    在联结哈夫曼树以节省一些表头空间后余下的不同树的数量。
    在一张表被压缩以后,myisamchk -dvv打印出每个字段的额外信息:

    Type
    字段类型可以包含下列描述符:
    constant
    所有行有相同的值。
    no endspace
    不存储尾空格。
    no endspace, not_always
    不存储尾空格而且不对所有值做尾空格压缩。
    no endspace, no empty
    不存储尾空格。不存储空值。
    table-lookup
    列被变换到一个ENUM。
    zerofill(n)
    值中最高n位总是0并且不被存储。
    no zeros
    不存储零。
    always zero
    0值以1位被存储。
    Huff tree
    与字段相关的哈夫曼树
    Bits
    在哈夫曼树里使用的位数。
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表