现有表一:table1 数据条数2千万
表二:table2 数据条数0table1 中无主键 无索引 
取table1中符合条件的语句,并根据条件生成数据插入到table2中!table1 不能建索引
曾试过用 order by 然后limit 分页,但是数据量太大,且无索引,所以也是很慢,求解!

解决方案 »

  1.   

    不能创建索引,则只能全表扫描,也就是你任意一个WHERE ID=1这样的条件,MYSQL都需要把2千万记录一个一个比较完才能给你正确的结果。
      

  2.   

    table1复制成table3  然后在table3上加索引
      

  3.   

    请教:MYSQL删除表的话是否会删除在这个表上所创建的索引的?
    或者 MYSQL上索引是否有域的限制,就是可以有多个相同名称的索引,依附于不同的表?
      

  4.   

    1 会删除表上索引
    2 一个库里不能有相同名字的索引,所以一般都是ix_tbname_colname
      

  5.   

    table1 导入到数据仓库infobright中,无须建立所以。
      

  6.   


    table1不建立索引可以啊,你create table table1_tmp select * from table1;然后在table1_tmp上面建立索引,然后再select结果插入到table2中,不一切都搞定了吗?变通一下啊!
      

  7.   

    我也想过这种变通,但是2000W的数据,建立索引也需要耗费很长时间!另外问一下,MYSQL游标是否在打开的时候会将所有数据集加载到内存?
      

  8.   

    table1 添加索引时 ,在干什么呢?---具体过程,谁谈谈,或者说在手册哪有写?
    肯定需要对某字段全表扫描吧?