有一个问题,一张表有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;