有一個問題,一張表有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;