用php mysql开发的项目,现在遇到个问题是在向数据库中导入数据时要花很久 怎么做才能提高速度呢

解决方案 »

  1.   

    你目前是用什么方法导入的? LOAD DATA?
      

  2.   

    set global innodb_flush_log_at_trx_commit=0;
      

  3.   

    要导入数据的是 csv格式的
      

  4.   


    这个参数没用
    你导入时要看你用的什么引擎
    对于myisam
    你可以先设置
    alter table xx disable /enable keys
    然后load data 这效果对于大数据会有明显提高
    对于innodb
    1可以先把你的数据按主见按顺序大致怕列,然后导入,理由是innodb会在每个主键上创建聚簇索引,你若你先大致拍一下,插入时就不用再排序,聚簇索引必须是排序的,这样会节约一点时间。但是可能不怎么明显
    2你把autocommit设置0这也会有点提高,在你把数据导入后记得设置为1否则导入不会成功
    如果 你用insert 
    单批执行会高很多,对于myisam还可以设置buik_insrt_buffer_siae参数 ,insert  delayed也会有所提高,不过建议还是用load data 
      

  5.   

    单批比多批效率高,buik_insrt_buffer_siae错了应该是bulk_insert_buffer_size