AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 1282
Accepted
servermanfail
servermanfail
Asked: 2011-02-18 00:10:05 +0800 CST2011-02-18 00:10:05 +0800 CST 2011-02-18 00:10:05 +0800 CST

如何获得“类型 db.sql | mysql”的 % 进度

  • 772

我在做:

type db.sql | mysql

控制台输出什么都没有。我看到 ibdata1 文件在增长,但我不知道它会增长到多少 GB。

我希望看到某种百分比进度指示器。有任何想法吗?

mysql
  • 3 3 个回答
  • 3730 Views

3 个回答

  • Voted
  1. RolandoMySQLDBA
    2011-02-18T10:57:04+08:002011-02-18T10:57:04+08:00

    我有一个疯狂的问题要问你吗!!!

    这将报告每个 InnoDB 表的大小。

    SELECT CONCAT(db,'.',tb) table_name,CONCAT(ROUND(
    tbsz/POWER(1024,IF(pw<0,0,IF(pw>4,4,pw))),3),' ',
    SUBSTR(' KMGT',IF(pw<0,0,IF(pw>4,4,pw))+1,1)) table_size
    FROM (SELECT data_length+index_length tbsz,table_schema db,table_name tb
    FROM information_schema.tables WHERE engine='InnoDB') A,
    (SELECT 3 pw) B;
    
    • (SELECT 0 pw) 给字节
    • (SELECT 1 pw) 给 KB
    • (SELECT 2 pw) 给 MB
    • (SELECT 3 pw) 给 GB
    • (选择 4 pw)给结核病

    只需在加载 SQL 脚本期间定期运行它。如果 SQL 脚本表在加载期间锁定了表,那么在表完全加载之前您将看不到数字。

    试试看 !!!

    • 5
  2. Best Answer
    David Spillett
    2011-02-18T04:39:09+08:002011-02-18T04:39:09+08:00

    在 Linux 等类 unix-a 系统下,有许多选项。Pipe Viewer(pv,在此处可用)是我倾向于使用的一种,它方便地存在于大多数发行版的标准软件包存储库中(aptitude install pv在 Ubuntu 下)。

    但是您使用type而不是cat暗示您正在使用Windows,并且我不知道该环境有任何此类工具,尽管毫无疑问,pvGaius 提到的工具之一或其中之一可以在cygwin下轻松编译。

    请注意,这是计量发送到 mysql 的文件量,而不是 mysql 实际完成的工作量,并且发送到 mysql 的文件量可能无法准确映射到 mysql 已经完成且尚未完成的工作量做。一个巨大的多行 INSERT (如INSERT <table> VALUES(<row 1 content>), (<row 2 content>), ..., (<row X content>);而不是INSERT <table> VALUES(<row 1 content>); INSERT <table> VALUES (<row 2 content>); ...)在完全接收之前不会被处理,因此如果您通过慢速网络链接运行脚本,您会在发送数据时看到一些进度,然后在实际处理时暂停(所以如果整个脚本是一个长的多行插入语句,进度表可能会直接达到 100%,或者接近,并在那里呆很长时间)。

    作为另一个建议,您可以在脚本的每个部分周围添加输出语句,例如:

    SELECT "About to create table some_table" AS action;
    <create table code>
    SELECT "Table some_table created" AS action;
    

    并时不时地用消息以及之前和/或之后的消息打破位插入:

    SELECT "About to add rows to some_table" AS action, COUNT(*) AS current_rowcount FROM some_table;
    <some insert statements, or a multi-row insert>
    SELECT "adding rows to some_table" AS action, COUNT(*) AS current_rowcount FROM some_table;
    <some more insert statements, or a multi-row insert>
    SELECT "Done adding rows to some_table" AS action, COUNT(*) AS current_rowcount FROM some_table;
    

    在处理脚本时,这些额外的 SELECT 语句的结果应该写入标准输出(即您的控制台),这样您就会知道它已经走了多远。

    • 4
  3. Gaius
    2011-02-18T01:52:50+08:002011-02-18T01:52:50+08:00

    我相信您应该能够使用命令行进度条来做到这一点,例如:

    $ cat db.sql | bar | mysql
    

    或者用 progress 连接,例如:

    $ cwp db.sql |mysql
    
    • 2

相关问题

  • 是否有任何 MySQL 基准测试工具?[关闭]

  • 我在哪里可以找到mysql慢日志?

  • 如何优化大型数据库的 mysqldump?

  • 什么时候是使用 MariaDB 而不是 MySQL 的合适时机,为什么?

  • 组如何跟踪数据库架构更改?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    您如何显示在 Oracle 数据库上执行的 SQL?

    • 2 个回答
  • Marko Smith

    如何选择每组的第一行?

    • 6 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    我可以查看在 SQL Server 数据库上运行的历史查询吗?

    • 6 个回答
  • Marko Smith

    如何在 PostgreSQL 中使用 currval() 来获取最后插入的 id?

    • 10 个回答
  • Marko Smith

    如何在 Mac OS X 上运行 psql?

    • 11 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Marko Smith

    将数组参数传递给存储过程

    • 12 个回答
  • Martin Hope
    Manuel Leduc PostgreSQL 多列唯一约束和 NULL 值 2011-12-28 01:10:21 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Stuart Blackler 什么时候应该将主键声明为非聚集的? 2011-11-11 13:31:59 +0800 CST
  • Martin Hope
    pedrosanta 使用 psql 列出数据库权限 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST
  • Martin Hope
    BrunoLM Guid vs INT - 哪个更好作为主键? 2011-01-05 23:46:34 +0800 CST
  • Martin Hope
    bernd_k 什么时候应该使用唯一约束而不是唯一索引? 2011-01-05 02:32:27 +0800 CST
  • Martin Hope
    Patrick 如何优化大型数据库的 mysqldump? 2011-01-04 13:13:48 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve