给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';


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM