即使是最简单的查询,MySql速度也非常慢

时间:2013-10-05 16:13:59

标签: mysql performance

我正在尝试将一个包含100万行的非常简单的数据集加载到MySQL表中。

我使用LOAD DATA INFILE从5-6个不同的文件加载数据,这些文件都包含相同结构的相同数据,只是在不同的日子里。

加载前2个文件后,加载过程开始变得非常慢,考虑到文件的大小(每个文件大约100MB,100k行)...加载100mb文件需要10多分钟! ..

我认为问题可能与我加载数据和索引的方式有关,但我意识到这是我的MySQL的整体问题..例如,我运行了以下查询:

select count(*) from DataTable;

并且MySQL花了301秒才回复!!! (答案是78万)

我必须做一些非常根本错误的事情。我检查了变量,例如innodb缓冲池等,但没有什么看起来不寻常......

我确实意识到我提出了一个非常基本的问题,但是找不到任何关于抱怨类似基本问题的帖子。

非常感谢你的帮助..


请在下面找到我用于创建数据表的代码..

SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';

CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET utf8 ;
USE `mydb` ;

-- -----------------------------------------------------
-- Table `mydb`.`addata`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`addata` (
  `idAdData` INT NOT NULL,
  `Field1` VARCHAR(30) NOT NULL,
  `Field2` VARCHAR(30) NULL,
  `Field3` VARCHAR(50) NULL,
  `Field4` VARCHAR(50) NULL,
  `Field5` VARCHAR(50) NULL,
  `Field6` INT NULL,
  `Field8` VARCHAR(50) NULL,
  `Field9` VARCHAR(50) NULL,
  `Field10` VARCHAR(50) NULL,
  `Field11` INT NULL,
  `Field12` VARCHAR(50) NULL,
  `Field13` VARCHAR(50) NULL,
  `Field14` VARCHAR(50) NULL,
  `Field15` VARCHAR(30) NULL,
  `Field16` VARCHAR(30) NULL,
  `Field17` VARCHAR(30) NULL,
  `Field18` VARCHAR(30) NULL,
  `Field19` VARCHAR(30) NULL,
  `Field20` VARCHAR(30) NULL,
  `Field21` VARCHAR(30) NULL,
  `Field22` VARCHAR(300) NULL,
  `Field23` VARCHAR(100) NULL,
  `Field24` INT NULL,
  PRIMARY KEY (`idAdData`, `Field2`))
ENGINE = InnoDB;


SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

0 个答案:

没有答案