几百万的数据,mysql快速高效创建索引

时间:2021-05-21 21:45:34



 有一个问题,一张表有3百万条记录,随着时间的增加,记录量会更多,此时查询速度很慢。在创建此表前没有未相应字段添加索引,所以此时需要为表添加索引。但是因为数据量大的原因,索引添加不成功,想了很多办法,终于在短时间内解决了。

总的思想就是,将数据导出,创建索引,然后将数据导回。


  办法如下:

  1、进入mysql界面。mysql -uroot -hlocalhost -plovelive gm;

  2、导出相应表的数据。select * from tab into outfile 'tab.txt'; 此处tab.txt文件在mysql的data目录里

  3、删除相应表的数据,并置第一条记录为0。truncate tab;

  4、创建索引。create index IDX_NAME using BTREE on tab (col);

  索引的方式有:BTREE、RTREE、HASH、FULLTEXT、SPATIAL

  5、导入文件到相应表。load data infile '/mysql/data/tab.txt' into table tab;