mysql远程写入速度很慢

大先生
  • 1
新手上路,请多包涵

我将远程主机的mysql开放外网访问,在我本地主机写入数据库的速度是五条每秒,可是远程主机运行相同的代码,可以达到100多条每秒。目前已经尝试过[mysqld]skip-name-resolve的方案,没什么效果,请问我该如何提高mysql的写入速度?

回复
阅读 3.7k
2 个回答

问题描述我没有理解的特别清晰。
本地连接远程数据库写入速度太慢?而在远程主机上写入时足够快的是吗?
如果是这样子的话,看起来像是网络带宽的原因,在远程主机上执行代码实际上时写入本地,网卡延迟很小。
而在本地写入远程,网络延迟太高了。
解决办法:

  1. 加大带宽.
  2. 减少通信次数,用类似于pipline的思想.比如原先是每次写入一条数据,mysql支持一次性写入多条insert table(x,y) values (x1,y1),(x2,y2),(x3,y3) .可以批量插入.

根据你的描述,主要原因在带宽上,提升写入速度的方案主要有下面几个
1、增加带宽配置
2、合并写,多条记录一起写入提交,降低io
3、调整数据库日志写入策略,修改参数

sync_binlog = 0
表示binlog不实时刷盘,由操作系统控制什么时候刷新缓存持久化
innodb_flush_log_at_trx_commit = 0
表示不是每一个事务提交时写一次redo

4、调大缓冲池

innodb_buffer_pool_size = 内存的70%

5、优化表结构设计,优化大字段

一定要有自增主键,这个很关键,并发大的时候效果尤为显著
宣传栏