Mysql 1秒200笔GPS数据批量写入优化

By | 03月09日
Advertisement

针对1100台车上传GPS数据实测,1s 200笔GPS数据批量写入,平均每小时300M日志,每小时1000w笔GPS数据,发现IO负载过高


Mysql 1秒200笔GPS数据批量写入优化

Mysql 1秒200笔GPS数据批量写入优化

一批次100笔(1秒2批次)GPS数据批量写入耗时

Mysql 1秒200笔GPS数据批量写入优化

慢查询: mysqldumpslow /var/lib/mysql/slow_query.log > /var/lib/mysql/2.log

vi 2.log

Mysql 1秒200笔GPS数据批量写入优化

1.优化:mysql优化

Mysql 1秒200笔GPS数据批量写入优化

2.优化:使用sharding-jdbc分表

3.优化后,top查询

load average 负载较低,wa 磁盘读写等待降到0.1

Mysql 1秒200笔GPS数据批量写入优化

4.优化后:iotop查找耗损IO的进程

Mysql 1秒200笔GPS数据批量写入优化

5.优化后:正常情况下,mysql 一批次(1秒2批次)100笔数据10ms左右搞定

Mysql 1秒200笔GPS数据批量写入优化

Similar Posts:

  • 【高级内部资料】.NET数据批量写入性能分析 第二篇

    [高级内部资料].NET数据批量写入性能分析 第二篇 在上一篇文章中,我们已经讲述了一些铺垫性的知识,那么从本篇开始,就开始正式的研究批量插入性能问题. 首先来看看,我们主要测试那些东西.因为我们本系列文章是研究SqlBulkCopy与SSIS的性能,所以,我们将他们进行详细的对比.对于SqlBulkCopy,我们主要对它的一下几个属性感兴趣,因为这些属性对性能的影响很大: Table locking:在进行批量插入数据的时候,往往会在要插入数据的表上创建一个排它锁,一方面,这个锁使得插入的更快

  • DataTable数据批量写入数据库三种方法比较(转载)

    DataTable数据批量写入数据库三种方法比较 以及方法介绍 收藏 最近在将excel中的文件导入到数据库中,用程序进行编写,由于数据量较大所以速度很慢, 后来采用了SqlBulkCopy类,解决了速度的问题,我就insert语 句,sqldataadapter.update(dataset,tablename);sqlbulkcopy.WriteToServer(datatable);三个方法的性 能进行比较: 1.生成测试的datatable表,表结构如下: UniqueID(主键,自动增

  • mysql为utf8为什么网页返回数据及写入mysql数据库均为乱码?

  • php批量写入MySQL的第二方法

    之前在一个出入库的系统里用了Sqlbulkcopy函数来进行对数据批量写入到SQL Server里,效果非常好,比传统的Insert into的效率高了很多.于是在对php批量写入到MySQL这个问题上,有了"块写入"的想法.对于php的了解并不多,只是配合我的师傅阿明,来解决大数据批量写入慢的问题. 写入MySQL的是用Load的方法,该方法的执行机制是先将数据生成为一个.txt的文本文件,然后通过导入到MySQL来实现写入操作的.可以来分析一下,其实整个操作包含两个步骤: 1.将数

  • MySQL中将一个表数据批量导入另一表

    不管是在网站开发还是在应用程序开发中,我们经常会碰到需要将MySQL或MS SQLServer某个表的数据批量导入到另一个表的情况,甚至有时还需要指定导入字段. 本文就将以MySQL数据库为例,介绍如何通过SQL命令行将某个表的所有数据或指定字段的数据,导入到目标表中.此方法对于SQLServer数据库,也就是T-SQL来说,同样适用. 类别一.如果两张张表(导出表和目标表)的字段一致,并且希望插入全部数据,可以用这种方法:INSERT INTO 目标表 SELECT * FROM 来源表 ;

  • [Django]数据批量导入

    前言:历经一个月的复习,考试终于结束了.这期间上班的时候有研究了Django网页制作过程中,如何将数据批量导入到数据库中. 这个过程真的是惨不忍睹,犯了很多的低级错误,这会在正文中说到的.再者导入数据用的是py脚本,脚本内容参考至自强学堂--中级教程--数据导入. 注:本文主要介绍自己学习的经验总结,而非教程! 正文:首先说明采用Django中bulk_create()函数来实现数据批量导入功能,为什么会选择它呢? 1 bulk_create()是执行一条SQL存入多条数据,使得导入速度更快;

  • 从串口获得并分析GPS数据

    目前GPS(全球定位系统)定位应用市场日趋成熟,正在进入应用的高速发展时期.看到论坛里不断有人提问关于GPS的问题.现将个人对GPS的了解写出来跟大家一块探讨. 1. GPS应用简介 近年来GPS系统,已经在大地测绘.海上渔用.车辆定位监控.建筑.农业等各个领域得到广泛应用.从九十年代我国引进GPS定位技术开始,经过十多年的市场培育,GPS定位应用进入了发展的最好时机,未来十年基于GPS的应用将会改变我们的生活和工作方式. 目前市场上的大部分GPS接受模块都是通过RS232串口与MCU进行数据传

  • Fireasy.Data系列——几种数据库的大数据批量插入

    在之前只知道SqlServer支持数据批量插入,殊不知道Oracle.SQLite和MySql也是支持的,不过Oracle需要使用Orace.DataAccess驱动,今天就贴出几种数据库的批量插入解决方法. 首先说一下,IProvider里有一个用于实现批量插入的插件服务接口IBatcherProvider,此接口在前一篇文章中已经提到过了. /// <summary> /// 提供数据批量处理的方法. /// </summary> public interface IBatch

  • [整理]GPS数据包解析

    GPS数据包解析 GPS 上电后,每隔一定的时间就会返回一定格式的数据,数据格式为:$信息类型,x,x,x,x,x,x,x,x,x,x,x,x,x每行开头的字符都是‘$’,接着是信息类型,后面是数据,以逗号分隔开.一行完整的数据如下:$GPRMC,080655.00,A,4546.40891,N,12639.65641,E,1.045,328.42,170809,,,A*60 信息类型为:GPGSV:可见卫星信息GPGLL:地理定位信息GPRMC:推荐最小定位信息GPVTG:地面速度信息GPGG

  • 使用事务操作SQLite数据批量插入

    在开发过程中,有时候需要批量写入数据的情况,发现传统的插入数据模式非常慢,几千条数据的写入或者更新可能需要好几分钟时间 就是采用事务提交,默认SQLite的数据库插入操作,如果没有采用事务的话,它每次写入提交,就会触发一次事务操作,而这样几千条的数据,就会触发几千个事务的操作,这就是时间耗费的根源. 上面的批量插入,经过前后的测试,2千条数据批量插入SQLite数据库,需要大概3~4分钟左右,如果采用了事务操作,则在1~2秒内写入完成

Tags: