表引擎是innoDB,表中只有自增长ID和另一个字段,现在用insert into 语句一次插入10万条数据,发现数据库里的数据ID是乱序显示?而且插入效率较慢,求教

解决方案 »

  1.   

    贴出 show create table xx;以供分析。
    然后贴出 select * from xx limit 100以证明是乱序
      

  2.   

    没有排序子句查询时,是以数据库中的顺序为准,若数据库没有设计类似聚簇索引的东西,那顺序就是乱的.
    其实是习惯问题,加上order by就好了.
      

  3.   

    我现在也遇到批量插入的问题,目前准备采用的方案是: 采用 load data infile 的方法,同时引擎采用myisam(前提是不准备用事务回滚机制。),然后在关闭索引,这样效率能上去;
    至于ID自增的话,建议删除ID列,采用另外一列作为 unique key 值,且删除主键;
    这是我的方案,供参考
      

  4.   

    把所有insert into 放到事务里,插入完再统一提交
    这样:
    start tranction;
    inserti into ......;
    inserti into ......;inserti into ......;
    commit;