我有一张表  里面有10W条数据 。
    我现在要向里面加组合索引。
    表有7个字段,加4个字段的字符索引。    因为数据太多,创建的效率太低,半个小时过去了,也没有创建成功,,,,
    innodb_buffer_pool_size=8M   
    请问怎样才能快速有效的创建这个索引。
   

解决方案 »

  1.   

    应该把buffer_size调大 创建索引就快了
      

  2.   

     
    +----------------+--------------+------+-----+---------+-------+
    | Field          | Type         | Null | Key | Default | Extra |
    +----------------+--------------+------+-----+---------+-------+
    | xf_cameraid    | varchar(45)  | NO   |     |         |       |
    | xf_startyear   | varchar(4)   | NO   |     |         |       |
    | xf_startmonth  | varchar(2)   | NO   |     |         |       |
    | xf_startday    | varchar(2)   | NO   |     |         |       |
    | xf_starthour   | varchar(2)   | NO   |     |         |       |
    | xf_startminute | varchar(2)   | NO   |     |         |       |
    | xf_endyear     | varchar(4)   | NO   |     |         |       |
    | xf_endmonth    | varchar(2)   | NO   |     |         |       |
    | xf_endday      | varchar(2)   | NO   |     |         |       |
    | xf_endhour     | varchar(2)   | NO   |     |         |       |
    | xf_endminute   | varchar(2)   | NO   |     |         |       |
    | xf_incount     | int(11)      | NO   |     |         |       |
    | xf_outcount    | int(11)      | NO   |     |         |       |
    | xf_res     | varchar(255) | NO   |     |         |       |
    | xf_machineid   | varchar(45)  | NO   |     |         |       |
    +----------------+--------------+------+-----+---------+-------+
       表结构是这样的。开始没有加索引。。请问,我想快速加,应该怎么加。
      

  3.   

      这个表的导入使用的很大的一个sql脚本导入的。。里面有很多表,差不多1G的.sql文件不能分的导入- -!
      

  4.   

    过程是这样的:
    1. 然后对原来的表改名,然后建立临时表,此时用到的参数是TMP_TABLE_SIZE,加大!2. 然后删除原来的表,对临时表改名。在1到2操作中用到INNODB_BUFFER_POOL_SIZE 和 KEY_BUFFER_SIZE。加大它们。(如果你对配置不做任何修改的话。)
      

  5.   

    还有就是你的IO处理能力。 如果IO的读写都不怎么样,那即是你把这些参数加大,也会很慢。