旗下导航:搜·么
当前位置:网站首页 > MySQL教程 > 正文

mysql完成百万的数据疾速建立索引【MySQL教程】,mysql,快速,数据

作者:搜教程发布时间:2019-11-27分类:MySQL教程浏览:87评论:0


导读:测试数据本机一张表users有100百万条纪录。在建立此表前没有未响应字段增加索引,所以此时须要为表增加索引。然则因为数据量大的缘由,索引增加能够不胜利,想了许多要领,终究挖坑胜利...
测试数据本机一张表users有100百万条纪录。在建立此表前没有未响应字段增加索引,所以此时须要为表增加索引。然则因为数据量大的缘由,索引增加能够不胜利,想了许多要领,终究挖坑胜利。

最先准备工作,

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 =

终究以下:

再次重启mysql

能够看到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网别的相干文章!

标签:mysql快速数据


欢迎 发表评论: