• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • ndb_select_all —从NDB表中打印行

    ndb_select_allNDB表中的所有行打印到stdout

    用法

    ndb_select_all -c connection_string tbl_name -d db_name [> file_name]
    

    下表包含特定于NDB Cluster本机备份还原程序ndb_select_all的选项。附加说明如下表。有关大多数NDB群集程序(包括ndb_select_all)通用的选项,请参见“ NDB群集程序的通用选项— NDB群集程序的通用选项”。

    ndb_select_all程序的命令行选项

    格式描述添加,不建议使用或删除

    --database=dbname

    -d

    在其中找到表的数据库的名称

    (在所有基于MySQL 8.0的版本中受支持)

    --parallelism=#

    -p

    并行度

    (在所有基于MySQL 8.0的版本中受支持)

    --lock=#

    -l

    锁类型

    (在所有基于MySQL 8.0的版本中受支持)

    --order=index

    -o

    根据提供名称的索引对结果集进行排序

    (在所有基于MySQL 8.0的版本中受支持)

    --descending

    -z

    对结果集按降序排序(需要顺序标记)

    (在所有基于MySQL 8.0的版本中受支持)

    --header

    -h

    打印标题(设置为0 | FALSE以禁用输出中的标题)

    (在所有基于MySQL 8.0的版本中受支持)

    --useHexFormat

    -x

    以十六进制格式输出数字

    (在所有基于MySQL 8.0的版本中受支持)

    --delimiter=char

    -D

    设置列定界符

    (在所有基于MySQL 8.0的版本中受支持)

    --disk

    打印磁盘引用(仅适用于具有未索引列的磁盘数据表)

    (在所有基于MySQL 8.0的版本中受支持)

    --rowid

    打印行号

    (在所有基于MySQL 8.0的版本中受支持)

    --gci

    在输出中包含GCI

    (在所有基于MySQL 8.0的版本中受支持)

    --gci64

    在输出中包含GCI和行纪元

    (在所有基于MySQL 8.0的版本中受支持)

    --tupscan

    -t

    按顺序扫描

    (在所有基于MySQL 8.0的版本中受支持)

    --nodata

    不打印表格列数据

    (在所有基于MySQL 8.0的版本中受支持)


    • --database=dbname-ddbname

      在其中找到表的数据库的名称。默认值为TEST_DB

    • parallelism=#-p#

      指定并行度。

    • --lock=lock_type-l lock_type

      读取表时使用锁。可能的值为lock_type

      • 0:读锁
      • 1:按住锁定读
      • 2:独占读锁

      此选项没有默认值。

    • --order=index_name-o index_name

      根据名为的索引对输出进行排序index_name

      注意

      这是索引的名称,而不是列的名称;索引在创建时必须已明确命名。

    • --descending-z

      按降序对输出进行排序。此选项只能与-o--order)选项一起使用。

    • --header=FALSE

      从输出中排除列标题。

    • --useHexFormat-x

      使所有数值以十六进制格式显示。这不会影响字符串或日期时间值中包含的数字的输出。

    • --delimiter=character-D character

      使character要用作一列分隔符。此分隔符仅分隔表数据列。

      默认的分隔符是制表符。

    • --disk

      将磁盘参考列添加到输出中。该列仅对具有未索引列的“磁盘数据”表为非空。

    • --rowid

      添加一ROWID列,该列提供有关存储行的片段的信息。

    • --gci

      GCI在输出中添加一列,以显示每行最后更新的全局检查点。有关检查点的更多信息,请参见“ NDB群集概述”和“ NDB群集日志事件”。

    • --gci64

      ROW$GCI64在输出中添加一列,该列显示最后更新每行的全局检查点以及此更新发生的时期数。

    • --tupscan-t

      按元组的顺序扫描表。

    • --nodata

      导致省略任何表数据。

    样本输出

    MySQL SELECT语句的输出:

    mysql> SELECT * FROM ctest1.fish;
    +----	+-----------	+
    | id	| name	|
    +----	+-----------	+
    |  3	| shark	|
    |  6	| puffer	|
    |  2	| tuna	|
    |  4	| manta ray	|
    |  5	| grouper	|
    |  1	| guppy	|
    +----	+-----------	+
    6 rows in set (0.04 sec)
    

    等效调用ndb_select_all的输出:

    shell> ./ndb_select_all -c localhost fish -d ctest1
    id      name
    3       [shark]
    6       [puffer]
    2       [tuna]
    4       [manta ray]
    5       [grouper]
    1       [guppy]
    6 rows returned
    
    NDBT_ProgramExit: 0 - OK
    

    ndb_select_all的输出中,所有字符串值都用方括号([...])括起来。对于另一个示例,请考虑如下所示创建和填充的表:

    CREATE TABLE dogs (
        id INT(11) NOT NULL AUTO_INCREMENT,
        name VARCHAR(25) NOT NULL,
        breed VARCHAR(50) NOT NULL,
        PRIMARY KEY pk (id),
        KEY ix (name)
    )
    TABLESPACE ts STORAGE DISK
    ENGINE=NDBCLUSTER;
    
    INSERT INTO dogs VALUES
        ('', 'Lassie', 'collie'),
        ('', 'Scooby-Doo', 'Great Dane'),
        ('', 'Rin-Tin-Tin', 'Alsatian'),
        ('', 'Rosscoe', 'Mutt');
    

    这演示了几个其他ndb_select_all选项的用法

    shell> ./ndb_select_all -d ctest1 dogs -o ix -z --gci --disk
    GCI     id name          breed        DISK_REF
    834461  2  [Scooby-Doo]  [Great Dane] [ m_file_no: 0 m_page: 98 m_page_idx: 0 ]
    834878  4  [Rosscoe]     [Mutt]       [ m_file_no: 0 m_page: 98 m_page_idx: 16 ]
    834463  3  [Rin-Tin-Tin] [Alsatian]   [ m_file_no: 0 m_page: 34 m_page_idx: 0 ]
    835657  1  [Lassie]      [Collie]     [ m_file_no: 0 m_page: 66 m_page_idx: 0 ]
    4 rows returned
    
    NDBT_ProgramExit: 0 - OK