现在运行情况:10秒大概10000数据~~~~~~
1、INSERT装载数据比LOAD DATA INFILE要慢得多,即使是使用上述的策略。
2、加锁
如果不使用锁定,2、3和4将在1和5前完成。如果使用锁定,2、3和4将可能不在1或5前完成,但是整体时间应该快大约40%。
INSERT、UPDATE和DELETE操作在MySQL中是很快的,通过为在一行中多于大约5次连续不断地插入或更新的操作加锁,可以获得更好的整体性能。如果在一行中进行多次插入,可以执行LOCK TABLES,随后立即执行UNLOCK TABLES(大约每1000行)以允许其它的线程访问表。这也会获得好的性能。
- LOCK TABLES a WRITE;
- INSERT INTO a VALUES (1,23),(2,34),(4,33);
- INSERT INTO a VALUES (8,26),(6,29);
- UNLOCK TABLES;
3、通过以上对比发现对于插入大量数据时可以使用MyISAM存储引擎,如果再需要修改MySQL存储
引擎可以使用命令:
Sql代码
ALTER TABLE t ENGINE = MYISAM;
4、 关闭MYSQL日志
执行:
/usr/local/mysql/bin/mysql -u root -p
输入密码,登陆到mysql,然后执行
reset master;
退出后执行:
vi /etc/my.cnf
查找
log-bin=mysql-bin binlog_format=mixed
再这两行前面加上