测试数据本机一张表users有100百万条记录。在创建此表前没有未相应字段添加索引,所以此时需要为表添加索引。但是因为数据量大的原因,索引添加可能不成功,想了很多办法,终于挖坑成功。

开始准备工作,

user表结构:

CREATE TABLE`users` (

`id`int(11) unsigned NOT NULLAUTO_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百万的数据快速创建索引相关推荐

  1. GaussDB(for MySQL)如何快速创建索引?华为云数据库资深架构师为您揭秘

    摘要:云服务环境下,如何解决客户基于大量数据创建索引的性能问题,成为云服务厂商的一个挑战.华为云GaussDB(for MySQL)通过引入并行创建索引技术,很好地解决了批量索引创建和临时添加索引等性 ...

  2. mysql千万级数据索引查询_mysql千万级数据量根据索引优化查询速度

    (一)索引的作用 索引通俗来讲就相当于书的目录,当我们根据条件查询的时候,没有索引,便需要全表扫描,数据量少还可以,一旦数据量超过百万甚至千万,一条查询sql执行往往需要几十秒甚至更多,5秒以上就已经 ...

  3. mysql 表 视图 索引吗_Mysql多表查询, 视图,事务,索引,函数,go连接数据库

    1.1 今日目标 理解多表查询 理解子查询 能够创建视图 能够删除视图 能够查看创建视图的SQL语句 能够理解事务的作用 能够操作事务 理解索引的作用 能够创建索引 能够删除索引 知道常用的函数 了解 ...

  4. oracle查询删除时间戳,Oracle查询时间戳,建表时间,新建序列,误删数据

    Oracle的时间戳格式查询如下: SELECT VALUE FROM NLS_SESSION_PARAMETERS WHERE PARAMETER = 'NLS_TIMESTAMP_FORMAT'. ...

  5. mysql 索引触发_Mysql基本查询、视图、索引、触发器

    基本查询 1.修改 String sql="update smbms_user set userCode=?,userName=? where id=?"; 2.删除用户 Stri ...

  6. 数据可视化大屏电商数据展示平台开发实录(Echarts柱图曲线图、mysql筛选统计语句、时间计算、大数据量统计)

    数据可视化大屏电商数据展示平台 一.前言 二.项目介绍 三.项目展示 四.项目经验分享 4.1 翻牌器 4.1.1 翻牌器-今日实时交易 4.1.2.翻牌器后端统计SUM函数的使用 4.2 不同时间指 ...

  7. mysql数据库导出后乱码问题_MySQL导入导出数据出现乱码的解决办法

    在mysql导入导出数据时经常出现中文乱码的问题,大多是因类导入导出时编码设置不一致所引起的.本文介绍了不同平台下的编码转换方法,供大家参考. 在linux系统中默认的是utf8编码,而windows ...

  8. mysql修改字段为现在时间_mysql如何修改字段自动生成时间

    mysql修改字段自动生成时间的方法:1.添加CreateTime设置默认时间:2.修改CreateTime设置默认时间:3.添加UpdateTime设置默认时间. 本教程操作环境:windows7系 ...

  9. mysql视图表怎么设置约束_MySQL一一sql的视图、索引、约束

    一.视图 本质上相当于一张**"虚拟表"**,可当作独立的一张表进行操作(增.删.改.查) **      作用:** **       a)**可通过权限控制,只将"表 ...

最新文章

  1. Android Wifi 主动扫描 被动扫描
  2. 基于windows 2012部署oracle 12.1.0.2 rac历险记
  3. Activity启动流程:Hook实现启动未注册Activity
  4. 再见!人人影视...
  5. Spring切点表达式常用写法
  6. java新建测试程序_java – 如何创建一个CloseableHttpResponse对象来帮助测试?
  7. 说说TDD的好处和坏处-对话
  8. 绝地求生5月22日服务器维护,绝地求生5月22日更新了什么内容 吃鸡5月22日维护公告...
  9. py2exe for python3_使用Py2Exe for Python3创建自己的exe程序
  10. ListView与.FindControl()方法的简单练习 #2 -- ItemUpdting事件中抓取「修改后」的值
  11. Windows 桌面主题,桌面背景
  12. python基础装饰器(二十)
  13. 重磅! flutter视图局部更新
  14. 合并多行查询数据到一行:使用自连接、FOR XML PATH('')、STUFF或REPLACE函数
  15. 第五人格显示服务器维护中请稍后登录怎么办,《第五人格》未知异常 请稍后重试登不上去如何解决...
  16. 山大商院java课程_山大商院必读书目推荐——《社会科学方法论》
  17. win7 计算机设置命令,win7系统如何设置自动关机?
  18. ios底层是linux,深入iOS系统底层之CPU寄存器介绍
  19. appium使用相对坐标定位元素
  20. android+照相软件,韩国很火的照相app

热门文章

  1. python 网络编程是什么_什么是网络编程-Python 网络编程-嗨客网
  2. Android如何播放h.264格式视频
  3. < CSS技巧 之 弹性布局( Flex布局 ) - 实例篇 >
  4. 分享 孩子,请记住那些比药家鑫更凶恶的人——21世纪经济导报记者周斌写给张妙儿子的一封信(转)...
  5. 烧烤食客钟爱肉类 人均消费价格超正餐
  6. 超小型迷你BT客户端-uTorrent(附安装教程)
  7. 用c++实现AES基本算法
  8. 仙人掌问题(圆方树)
  9. 掌通家园获大钲资本领投1亿美元D轮融资,加速构建幼教服务平台
  10. c语言中0x12是什么进制,C语言中进制知识汇总