MySQL Bug&引用;“显示表格状态”;报告导入期间的行数
我正在将4.1mil记录导入脱机系统,以便对数据库的一个子集进行分析。在运行导入时,我尝试使用以下方法检查其进度:MySQL Bug&引用;“显示表格状态”;报告导入期间的行数,mysql,myisam,dml,Mysql,Myisam,Dml,我正在将4.1mil记录导入脱机系统,以便对数据库的一个子集进行分析。在运行导入时,我尝试使用以下方法检查其进度: SHOW TABLE STATUS LIKE 'MailIssueElement' 奇怪的是…在不同的时间,我看到行的值越来越高,越来越低。我希望它只会上升。以下是输出的示例: mysql> show table status like 'MailIssueElement' \G *************************** 1. row ************
SHOW TABLE STATUS LIKE 'MailIssueElement'
奇怪的是…在不同的时间,我看到行的值越来越高,越来越低。我希望它只会上升。以下是输出的示例:
mysql> show table status like 'MailIssueElement' \G
*************************** 1. row ***************************
Name: MailIssueElement
Engine: MyISAM
Version: 10
Row_format: Dynamic
Rows: 2818307
Avg_row_length: 120
Data_length: 338392232
Max_data_length: 281474976710655
Index_length: 158029824
Data_free: 0
Auto_increment: 10248973
Create_time: 2010-02-03 10:58:41
Update_time: 2010-02-03 11:04:06
Check_time: 2010-02-03 10:58:53
Collation: latin1_swedish_ci
Checksum: NULL
Create_options:
Comment:
1 row in set (0.60 sec)
mysql> show table status like 'MailIssueElement' \G
*************************** 1. row ***************************
Name: MailIssueElement
Engine: MyISAM
Version: 10
Row_format: Dynamic
Rows: 1870294
Avg_row_length: 119
Data_length: 223251912
Max_data_length: 281474976710655
Index_length: 107688960
Data_free: 0
Auto_increment: 10248973
Create_time: 2010-02-03 10:58:41
Update_time: 2010-02-03 11:04:13
Check_time: 2010-02-03 10:58:53
Collation: latin1_swedish_ci
Checksum: NULL
Create_options:
Comment:
1 row in set (0.35 sec)
mysql> show table status like 'MailIssueElement' \G
*************************** 1. row ***************************
Name: MailIssueElement
Engine: MyISAM
Version: 10
Row_format: Dynamic
Rows: 3074205
Avg_row_length: 120
Data_length: 369507112
Max_data_length: 281474976710655
Index_length: 171537408
Data_free: 0
Auto_increment: 10248973
Create_time: 2010-02-03 10:58:41
Update_time: 2010-02-03 11:04:36
Check_time: 2010-02-03 10:58:53
Collation: latin1_swedish_ci
Checksum: NULL
Create_options:
Comment:
1 row in set (0.01 sec)
mysql> show table status like 'MailIssueElement' \G
*************************** 1. row ***************************
Name: MailIssueElement
Engine: MyISAM
Version: 10
Row_format: Dynamic
Rows: 1870294
Avg_row_length: 119
Data_length: 223251912
Max_data_length: 281474976710655
Index_length: 107688960
Data_free: 0
Auto_increment: 10248973
Create_time: 2010-02-03 10:58:41
Update_time: 2010-02-03 11:04:40
Check_time: 2010-02-03 10:58:53
Collation: latin1_swedish_ci
Checksum: NULL
Create_options:
Comment:
1 row in set (0.00 sec)
这种行为有什么解释吗?有没有更好的方法来检查我的导入进度
运行以下版本:服务器版本:5.0.32-Debian_7etch11-log Debian蚀刻分发版
编辑:
这是DDL。这是一张MyISAM表:
mysql> show create table MailIssueElement \G
*************************** 1. row ***************************
Table: MailIssueElement
Create Table: CREATE TABLE `MailIssueElement` (
`Id` int(11) NOT NULL auto_increment,
`IssueId` int(11) NOT NULL default '0',
`Date` datetime NOT NULL default '0000-00-00 00:00:00',
`Direction` enum('inbound','outbound') NOT NULL default 'inbound',
`ToAddr` varchar(255) NOT NULL default '',
`FromAddr` varchar(255) NOT NULL default '',
`CCAddrs` varchar(255) NOT NULL default '',
`Subject` text NOT NULL,
`ParentIssueElementId` int(11) default NULL,
`ParentIssueElementType` enum('mail','phone') default 'mail',
`AgentId` int(11) NOT NULL default '0',
PRIMARY KEY (`Id`),
KEY `date_idx` (`Date`),
KEY `IssueId` (`IssueId`),
KEY `idx_agent_id` (`AgentId`)
) ENGINE=MyISAM AUTO_INCREMENT=15099881 DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
提前感谢,
-关于行数的aj
一些存储引擎(如MyISAM)存储准确的计数。对于其他存储引擎,如InnoDB,该值是近似值,可能与实际值相差40%到50%
取自该表必须为InnoDB
从显示状态文件
行
行数。一些存储引擎(如MyISAM)存储准确的计数。对于其他存储引擎,如InnoDB,此值是近似值,可能与实际值相差40%到50%。在这种情况下,使用SELECT COUNT(*)获得准确的计数。好的,看起来是这样的。我想我最终需要从Etch升级到Lenny,并获得那些更新的软件包……谢谢大家的尝试。如果您使用的是InnoDB,行的计算方法似乎是将“数据长度”除以“平均行长度”(波动很大)。@Anthony-请参阅我的编辑。这实际上是一张MyISAM表。这似乎与你提供的信息相矛盾,不是吗?还是我误读了?别担心……是在你的回答之后;)谢谢你的帮助。@Yada-请参阅我的编辑。这实际上是一张MyISAM表。这似乎与你提供的信息相矛盾,不是吗?还是我误读了?