提高Mysql插入速度

mysql5的手册中提到,插入一条记录,所需的时间比例大概是:

  • 连接:(3)
  • 发送查询给服务器:(2)
  • 分析查询:(2)
  • 插入记录:(1x记录大小)
  • 插入索引:(1x索引)
  • 关闭:(1)

并且表的大小以logN(B树)的速度减慢索引的插入,因此提高插入速度的方法大概有以下7种:

1.一个insert语句包含多个value值;

2.使用insert delayed方法;

3.使用insert into ...values(select ...from),即select的同时执行insert;

4.使用load data infile;

5.先禁掉索引,插入后再创建索引;

6.写锁表,插入,解锁。原因是索引缓存区仅在所有insert语句完成后才刷新到磁盘上一次;

7.增加key_buffer_size值来扩大键高速缓冲区。

 

关于load data infile的用法:从一个txt文件导入数据,指定LOCAL会从客户端文件系统上查找txt文件。
比如生成一个txt文件,
select * into '/home/tmp.txt' fields terminated by ',' from table_a;
导入文件,
load data infile '/home/tmp.txt' into table table_b fields terminated by ',';
语法:
LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name.txt'
    [REPLACE | IGNORE]
    INTO TABLE tbl_name
    [FIELDS
        [TERMINATED BY 'string']
        [[OPTIONALLY] ENCLOSED BY 'char']
        [ESCAPED BY 'char' ]
    ]
    [LINES
        [STARTING BY 'string']
        [TERMINATED BY 'string']
    ]
    [IGNORE number LINES]
    [(col_name_or_user_var,...)]
    [SET co

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值