千万级数据批量导入mysql的优化
1.数据库引擎:
常见的索引引擎
- InnoDB,现在默认的引擎,支持外键、行锁、事务。默认是一句一事务,一句一提交。事务是需要开启的,并提交或回滚来关闭的。批量录入数据,手动开启事务,并手动提交。开启事务:start transaction;提交事务:commit;回滚事务:rollback。读写效率均等,没有特别突出的地方。InnoDB对表格的管理是基于但文件的。文件包括表头、约束、数据等信息。
- MyISM,推荐的读库引擎,没有事务,支持索引。写效率相对于InnoDB较低,读效率相对于InnoDB高很多。MyISAM对表格的管理是基于多文件的。有表头文件、约束文件、数据文件。
- MGR_MyISM,对MyISAM的一个变形优化,对表的信息做了一个额外的索引管理。
- MEMORY,内存引擎,数据只存储在内存,不落地到磁盘。通常应用在启动数据库的同时创建若干视图,视图使用内存引擎管理(不安全操作,对视图可写,会同步到表格)。也应用在,应用启动时,提供一个临时的表格,存储应用常用的,几乎不变的数据(如:电商中的商品类型)。
sql解析效率低,与Nosql比较
2.批量sql
insert into table_name() values();----单条数据录入
insert into table_name() values(),(),();—多条数据录入。带有缓存的。可以通过命令配置,也可以通过