INSERT语句(插入语句)
- 在大量插入插入数据的时候,我们应该避免单条插入,因为每一个sql语句都需要提交到关系引擎哪里去解析,优化,一旦数量过多,就会造成大量消耗
- 优化的方向是:批量提交,一次10条左右是最高效的,类似下图:
采用顺序主键策略、
DELETE语句(删除语句),与truncate table作比较
- truncate table [表名] :
- 删除速度更快,但是删除后不进入mysql的日志文件,不可以恢复。(谨慎)
- 如果没有外键关联,innnodb先drop table,再创建一个新表,速度比delete的逐条删除更快
- 如果有外键关联,truncate table删除表数据为逐行删除,如果有外键指定级联删除(delete casede),关联的子表中的也会删除所有表数据。如果外键没有指定级联,truncate table逐行删除数据,这时如果是父行关联子表行数据,将会报错。
- 如果使用innodb_file_per_table参数,能重新利用truncate table释放的硬盘空间,在innodb Plugin中,truncate table为自动回收,如果不是Innodb Plugin,那么需要使用optimize t