sql插入数据的方法以及效率
来源:互联网 发布:苹果自动关机软件哪个 编辑:程序博客网 时间:2024/05/22 14:43
最近的sql作业是在一个已经有10000条数据的table里插入1,000,000条数据。插入效率在不同的机子下差距很大= = 在此只纵向对比一下几种插入过程的区别和注意事项
1. 直接 load data infile
基本语句:
load data [low_priority] [local] infile 'file_name txt' [replace | ignore]
into table tbl_name
[fields
[terminated by't']
[OPTIONALLY] enclosed by '']
[escaped by'\' ]]
[lines terminated by'n']
[ignore number lines]
[(col_name, )]
例子:
load data infile `path.txt` into table table_name fields terminated by ',' lines terminated by '\r\n';
注意事项:1. 文件名使用1左边那个键引起的,而terminated by使用单引号引起的
2. windows中行的分隔符是\r\n 而unix下是\n
2.将所有数据合成一个insert语句,导入sql后缀的脚本
注意事项:防止mysql因为语句过大而丢失链接。修改mysql的最大语句限制,详见http://smilemonkey.iteye.com/blog/660889
1)mysql 导入数据
mysql 数据库名 -u 用户名 -p 密码< 文件名
如:mysql -u root -p admin < test.sql (如果sql路径不是当前路径,改成绝对路径 mysql -u root -p admin < /home/root/test.sql)
2) source 导入数据
source /home/root/XX.sql 只能用mysql -uroot -padmin 登录后才能使用
如: source /home/root/test.sql
顺便记录一下
3) mysqldump 导出数据
a. 只导出表结构
mysqldump --opt -d 数据库名 -u 用户名 -p 密码> xx.sql
如: mysqldump --opt -d shop_data -u root -p admin > onlystruct_shop_data.sql
b. 只导出数据
mysqldump -t 数据库名 -u 用户名-p 密码 > xx.sql
如: mysqldump --t shop_data -u root -p admin > onlydata_shop_data.sql
c. 导出所有数据和结构
mysqldump 数据库 -u 用户名 -p 密码 > xx.sql
如: mysqldump shop_data -u root -p admin > shop_data.sql
d. 导出特定表
mysqldump 数库 -u 用户名 -p 密码 -B --table 表名 > xx.sql
如: mysqldump shop_data -u root -p admin -B --table user > user.sql
3. insert语句一条一条地插入数据,非常地慢。
根据实际试验,效率2>1>3。在同学的mac下方法1已经非常快了。
但在我的电脑下2的效率比1好。
数据测试详见:
http://blog.jobbole.com/48417/
******另外,这次做sql作业,一个很容易犯的错误就是把table或者column的名字起成了sql的保留字。这样,如果用的时候不用1左边那个键把它引起来,就会报错。不过注意还是不要用保留字吧。
- sql插入数据的方法以及效率
- SQL SERVER 插入大批量数据有无索引的效率对比
- 提升SQLite数据插入效率低、速度慢的方法
- 提升SQLite数据插入效率低、速度慢的方法
- 提升SQLite数据插入效率低、速度慢的方法
- 提升SQLite数据插入效率低、速度慢的方法
- 提升SQLite数据插入效率低、速度慢的方法
- 提升SQLite数据插入效率低、速度慢的方法
- 提升SQLite数据插入效率低、速度慢的方法
- 提升SQLite数据插入效率低、速度慢的方法
- 提升SQLite数据插入效率低、速度慢的方法
- 提升SQLite数据插入效率低、速度慢的方法
- 提升SQLite数据插入效率低、速度慢的方法
- 提升SQLite数据插入效率低、速度慢的方法
- 提升SQLite数据插入效率低、速度慢的方法
- 提升SQLite数据插入效率低、速度慢的方法
- 提升SQLite数据插入效率低、速度慢的方法
- 提升SQLite数据插入效率低、速度慢的方法
- ENC28J60学习笔记——第2部分
- 在cocos2d-x下实现查询软件功能
- 使用XML的五种场合
- python数据持久存储:pickle模块的基本使用
- Python源码包下载地址
- sql插入数据的方法以及效率
- MongoDB基本使用
- Document root element "sqlMap", must match DOCTYPE root "sqlMapConfig".
- h264检测是I帧还是P帧
- schema约束理解
- Android编译过程详解(一)
- WSDL
- 微信公众号php开发接口怎么主动推送信息
- Android编译过程详解(二)