最先准备工作,
user表构造:
CREATE TABLE `users` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL, `add_time` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=1000001 DEFAULT CHARSET=latin1;
尝试在navicat中运用 into outfile导出数据的时刻涌现毛病:
select * from users into outfile 'users.txt'; //users.txt文件在mysql的dat
以下图:
上网查了一下是mysql设置的权限,能够运用
show variables like '%secure%';检察 secure-file-priv 当前的值是什么?
能够看到secure-file-priv参数是用来限定LOAD DATA, SELECT ... OUTFILE, and LOAD_FILE()传到哪一个指定目次的。 当secure_file_priv的值为null ,示意限定mysqld 不允许导入|导出 当secure_file_priv的值为/tmp/ ,示意限定mysqld 的导入|导出只能发生在/tmp/目次下 当secure_file_priv的值没有细致值时,示意不对mysqld 的导入|导出做限定.
导出的数据必需是这个值的指定途径才能够导出,默许有多是NULL(我这里检察的是null)就代表制止导出,所以须要设置一下
因为我运用的是phpstudy,mysql装置途径下的my.ini文件,设置一下途径:
注重:途径名加双引号" "
重启后再次实行毛病照旧.....
mysql.cnf中没有对这个参数举行设定,就申明这个参数默许就是null
所以再尝试修正mysql.cnf中的[mysqld]到场secure_file_priv =
终究以下:
能够看到users.txt生成在同级test数据库目次。。。
接着实行:
truncate users;
建立索引:
create index name using BTREE on users(name);
索引的体式格局有:BTREE、RTREE、HASH、FULLTEXT、SPATIAL,这里不再赘述他们的区分,网上有许多关于这块的引见啦
导入文件到响应表users。
load data infile 'users.txt' into table users;
此体式格局在write 锁住情况下,或对外效劳停息时运用,线上不能够直接如许玩了。
相干引荐:
MySQL建立索引和删除索引的要领
以上就是mysql完成百万的数据疾速建立索引的细致内容,更多请关注ki4网别的相干文章!