给mysql一百万条数据的表添加索引

直接alter table add index 添加索引,执行一个小时没反应,并且会导致锁表;故放弃该办法,最终解决办法如下:

一.打开mysql 命令行客户端

 这里我们那可以看到导出的数据文件所存放的默认位置  C:\ProgramData\MySQL\MySQL Server 5.7\Uploads\

二. 创建新表

  1. 创建一张新表与要添加索引的表结构保持一致; CREATE TABLE 表名 LIKE 要复制的表名; (仅复制表结构)

  2. .添加索引:

    (1).添加PRIMARY KEY(主键索引) 

      mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 


    (2).添加UNIQUE(唯一索引) 
      mysql>ALTER TABLE `table_name` ADD UNIQUE ( `column` )


    (3).添加INDEX(普通索引) 
      mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column` )


    (4).添加FULLTEXT(全文索引) 
      mysql>ALTER TABLE `table_name` ADD FULLTEXT ( `column`) 


    (5).添加多列索引 
      mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )

三.导出数据文件

select * from 'table_name' into outfile 'C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/table.txt';

注意:这里必须为 /

  必须保证目录文件夹" C:\ProgramData\MySQL\MySQL Server 5.7\Uploads\"存在,否则报不能创建文件错误;

如果报错:The MySQL server is running with the --secure-file-priv option so it cannot execute this statement 则表示数据库参数secure-file-priv配置错误;

四.导入数据文件到新表

load data infile 'C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/table.txt' into TABLE 'table_name';

猜你喜欢

转载自www.cnblogs.com/rong0912/p/12091861.html