mysql实现百万的数据快速创建索引
技术百科
小云云
发布时间:2018-03-27
浏览: 次 测试数据本机一张表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创建索引和删除索引的方法
# 的是
# 他们的
# 不可能
# 有很多
# 重启
# 有可能
# 想了
# 可以看到
# 值为
# 数据库
# NULL
# select
# mysql
# phpstudy
# 才可以
# navicat
相关栏目:
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
AI推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
SEO优化<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
技术百科<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
谷歌推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
百度推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
网络营销<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
案例网站<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
精选文章<?muma echo $count; ?>
】
相关推荐
- php485函数怎么捕获异常_php485错误处理
- Win11怎么清理C盘系统错误报告_Win11清理
- Win10任务栏天气和资讯怎么关闭 Win10禁用
- Win11怎么连接投影仪_Win11多显示器投屏设
- VSC怎样用终端运行PHP_命令行执行脚本的步骤【
- c++怎么使用类型萃取type_traits_c+
- Win11怎么设置虚拟键盘_打开Win11屏幕键盘
- Win11如何关闭游戏模式 Win11禁用Xbox
- 如何提升Golang JSON序列化性能_Gola
- PythonDocker高级项目部署教程_多容器管
- Mac怎么设置鼠标滚动速度_Mac鼠标设置详细参数
- Win11如何设置ipv6 Win11开启IPv6
- Win11怎么恢复旧版开始菜单_通过软件还原Win
- PowerShell怎么创建复杂的XML结构
- 如何在Golang中实现邮件发送功能_Golang
- 如何在Golang中使用闭包_封装变量与函数作用域
- php与c语言在嵌入式中有何区别_对比两者在硬件控
- Win10怎样卸载TeamViewer_Win10
- Win11怎么设置应用分屏_Windows11贴靠
- Win11任务栏颜色怎么改_Win11自定义任务栏
- c# Task.ConfigureAwait(tr
- C++如何将C风格字符串(char*)转换为std
- Win10如何更改任务栏高度_Windows10解
- 如何在Golang中修改数组元素_通过指针实现原地
- php错误怎么开启_display_errors与
- php下载安装后memory_limit怎么设置_
- Python深度学习实战教程_神经网络模型构建与训
- Windows11怎样开启游戏模式_Windows
- 静态属性修改会影响所有实例吗_php作用域操作符下
- Win10如何卸载预装Edge扩展_Win10卸载
- Windows的便笺功能如何使用?(桌面备忘技巧)
- windows如何禁用驱动程序强制签名_windo
- Win11怎么恢复误删照片_Win11数据恢复工具
- 如何在Golang中实现CI/CD流水线自动化测试
- 如何在Golang中引入测试模块_Golang测试
- php和redis连接超时怎么办_phpredis
- 如何在Golang中使用time处理时间_Gola
- Mac系统更新下载慢或失败怎么办_解决macOS升
- Win11任务栏怎么放到顶部_Win11修改任务栏
- 如何在Golang中使用内置函数_Golangle
- Win11怎么设置ip地址_Windows 11手
- 如何在 Django 中修改用户密码后保持会话不丢
- Win10电脑C盘红了怎么清理_Windows10
- Mac如何与安卓手机传文件_Mac和Android
- php中self::能调用子类重写的方法吗_静态绑
- Win11怎么设置DNS服务器_Windows11
- 如何使用Golang反射创建map对象_动态生成键
- PHP cURL GET请求:正确设置认证与自定义
- Win11怎么设置按流量计费_Win11限制后台流
- ACF 教程:如何正确更新嵌套在多层 Group

QQ客服