mysql没有充分利用我的cpu和ram?

mysql没有充分利用我的cpu和ram?,mysql,Mysql,我正在将一个2.5gb的csv文件导入mysql表。我的存储引擎是innodb。以下是脚本: use xxx; DROP TABLE IF EXISTS `xxx`.`xxx`; CREATE TABLE `xxx`.`xxx` ( `xxx_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(128) NOT NULL, `yy` varchar(128) NOT NULL, `yyy` varchar(6

我正在将一个2.5gb的csv文件导入mysql表。我的存储引擎是innodb。以下是脚本:

use xxx;
DROP TABLE IF EXISTS `xxx`.`xxx`;
CREATE TABLE  `xxx`.`xxx` (
  `xxx_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(128) NOT NULL,
  `yy` varchar(128) NOT NULL,
  `yyy` varchar(64) NOT NULL,
  `yyyy` varchar(2) NOT NULL,
  `yyyyy` varchar(10) NOT NULL,
  `url` varchar(64) NOT NULL,
  `p` varchar(10) NOT NULL,
  `pp` varchar(10) NOT NULL,
  `category` varchar(256) NOT NULL,
  `flag` varchar(4) NOT NULL,
  PRIMARY KEY (`xxx_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
set autocommit = 0;
load data local infile '/home/xxx/raw.csv' 
into table company
fields terminated by ',' optionally enclosed by '"'
lines terminated by '\r\n'
(
  name,
  yy,
  yyy,
  yyyy,
  yyyyy,
  url,
  p,
  pp,
  category,
  flag
);
commit;

为什么我的PC(core i7 920,6gb ram)在运行这些查询时只消耗9%的cpu功率和60%的ram

因为它不是真正的CPU或内存操作,它主要是一个磁盘I/O操作?

因为它不是真正的CPU或内存操作,它主要是一个磁盘I/O操作?

可能是因为它是一个I/O绑定的进程。这意味着过程中最慢的部分是从磁盘读取CSV文件,然后将MySQL数据库写回磁盘。磁盘访问速度比计算机内部进行的任何操作都要慢,因此您的CPU可能只需要几%的使用率就可以跟上它


此外,MySQL一次复制一块数据,而不是一次复制所有数据,因此它一次只需要在RAM中存储一点点数据。这就是为什么它可能不会占用大量内存。

可能是因为它是一个I/O绑定的进程。这意味着过程中最慢的部分是从磁盘读取CSV文件,然后将MySQL数据库写回磁盘。磁盘访问速度比计算机内部进行的任何操作都要慢,因此您的CPU可能只需要几%的使用率就可以跟上它


此外,MySQL一次复制一块数据,而不是一次复制所有数据,因此它一次只需要在RAM中存储一点点数据。这就是为什么它可能没有占用太多内存。

好的,谢谢你的回复,它实际上是一个SSD驱动器。但是,也许我的ram和CPU比SSD快。一切都有道理。还有一件有趣的事:我在装有Ubuntu的PC上运行相同的脚本,当我的Win7有更好的规格时,它的运行速度是我的Win7计算机的两倍谢谢@vick磁盘几乎是任何计算机、SSD或其他设备中速度最慢的(光驱是最差的)。就操作系统之间的磁盘性能而言,这也可以是任何内容—驱动器、控制器、I/O子系统配置、操作系统文件系统配置(包括审核)—您必须查看性能计数器—所有这些都属于serverfault.com……好的,感谢所有回复,它实际上是一个SSD驱动器。但是,也许我的ram和CPU比SSD快。一切都有道理。还有一件有趣的事:我在装有Ubuntu的PC上运行相同的脚本,当我的Win7有更好的规格时,它的运行速度是我的Win7计算机的两倍谢谢@vick磁盘几乎是任何计算机、SSD或其他设备中速度最慢的(光驱是最差的)。就操作系统之间的磁盘性能而言,也可以是任何内容—驱动器、控制器、I/O子系统配置、,操作系统文件系统配置,包括审核-您必须查看性能计数器-所有这些都属于serverfault.com…有没有办法确保查询/进程是否绑定了I/O?有没有办法确保查询/进程是否绑定了I/O?