阅读本文大概需要 2.8 分钟. 来源:http://t.cn/E2TbCg5 一.需求 一个朋友接到一个需求,从大数据平台收到一个数据写入在20亿+,需要快速地加载到MySQL中,供第二天业务展示使用. 二.实现再分析 对于单表20亿, 在MySQL运维,说真的这块目前涉及得比较少,也基本没什么经验,但对于InnoDB单表Insert 如果内存大于数据情况下,可以维持在10万-15万行写入. 但很多时间我们接受的项目还是数据超过内存的. 这里使用XeLabs TokuDB做一个测试. 三.Xe…
目录 一.故障现象... 1 二.初步分析... 2 三.排障过程... 2 1.排查是否QPS或insert并发请求上升导致问题发生... 2 2.排查是否锁资源等待或block导致了insert变慢... 3 3.排查是否表上无用索引导致的写入时间较长... 5 4.人工抓取perf,排查CPU上升期间的资源消耗... 5 5.疑似触发MySQL BUG,进一步分析... 6 四.优化过程... 8 1.初步优化方案... 8 2.删除一批无用索引,将服务器内存升级到80G.. 9 3.未达…
周末在一台MySQL实例上频繁做大批量的写入测试,无意中发现MySQL的errorlog中频繁出现如下的Note:page_cleaner: 1000ms intended loop took **** ms. The settings might not be optimal. (flushed=**** and evicted=0, during the time.) 一个典型的信息如下 InnoDB: page_cleaner: 1000ms intended loop took 4068…
前段时间搞优化,最后瓶颈发现都在数据库单点上. 问DBA,给我的写入答案是在1W(机械硬盘)左右. 联想起前几天infoQ上一篇文章说他们最好的硬件写入速度在2W后也无法提高(SSD硬盘) 但这东西感觉从来没证实过,故一时兴起,弄台虚拟机压测起来.   想搞清下面的问题:   1,mysql支撑多少连接数? 2,写入瓶颈到底是多少? 3,求QPS   畅想:  足够的CPU, load>远小于核数*2 足够的内存, 基本只用到物理内存 瓶颈在硬盘,写入速度应该能到90-100M/S(机械硬盘,7…
一.LOW_PRIORITY1.对于myisam默认是写操作优先,读操作滞后.通过该项更改,可以使读操作优先,写操作在有空闲的时候再写入.但该项可能在理论上造成,写被永远阻塞. SQL语句中使用示例:UPDATE LOW_PRIORITY table_name SET colomu='val' WHERE id=1; 该关键字同样可以在my.cnf中设置,调低所有的写入优先级. 需要说明的是,执行带有LOW_PRIORITY关键字的写入,线程必须等待执行完才会返回,并非是异步,而是同步,所以建议…
讲到log4j,现在国外基本是没有开发者用这个框架了,原因大致有几点,1.功能太少:2.效率低下:3.线程锁bug等等等各种莫名其妙的bug一直都没解决. 其实最重要的是log4j的作者自己也放弃了log4j,该作者现在在维护logback项目(现在主流的日志记录框架,彻底推翻了log4j的架构重写了,功能很强大),所以log4j以后基本不会再用了. 讲到这里,还是要研究一下要怎么实现的日志记录框架,那么要写个日志记录框架,得要熟悉日志记录系统的整体设计思路.于是自己构思了一晚上,花了一上午时间…
#!/usr/bin/python# -*- coding:utf-8 -*-'''方法:通过pymsql模块连接mysql数据库,然后通过游标cursor查询SQL语句将结果存储在Excel文件中,其中Excel的生成使用xlwt实现的.作者:Mr' fan时间:2018年3月'''import pymysqlimport xlwtimport datetime#def func(): #连接mysql数据库. conn = pymysql.connect(host='127.0.0.1',…
mysql的字段类型是timestamp(0), java的类型的是util.Date, 在插入数据的时候发现, 数据库的实际数据秒数比预想的数据偶尔会大1秒. 问题的原因: mysql的timestamp(0), 没有保留毫秒, 插入的时候, mysql会计算毫秒数, 所以会偶发数据库的秒数比参数大1秒. 解决方案: 1: timestamp(0) 改为 timestamp(3), 保留3位的毫秒数 2: 参数的毫秒值设置为0 3: 修改数据库的字段类型, 存储时间戳 或者 用字符串存储, 4…
1.Flink中exactly once实现原理分析 生产者从kafka拉取数据以及消费者往kafka写数据都需要保证exactly once.目前flink中支持exactly once的source不多,有kafka source:能实现exactly once的sink也不多,如kafka sink.streamingFileSink,其都要开启checkpoint才能实现exactly once.接下来以FlinkKafkaProducer为例,深入研究其源代码,从而理解flink中的e…
echo "set names utf8;insert into xxx (path, sn, time, flag) values ('$wav', '$sn', '$secs', 'op');" | MYSQL echo "set names utf8;insert into xxx (path, sn, time, flag) values ('$wav', '$sn', '$secs', 'op');" 前面增加 set names utf8;…