未分类

博客全面迁移到云栖社区

RT,wordpress写markdown太蛋疼了,以后博客都发到云栖了. 地址: https://yq.aliyun.com/u/zhaiwx1987 原创文章,转载请注明: 转载自Simple Life 本文链接地址: 博客全面迁移到云栖社区 Post Footer automatically generated by wp-posturl plugin for wordpress.


procedure analyse() 随手记

Procedure Analyze: http://dev.mysql.com/doc/refman/5.6/en/procedure-analyse.html Procedure Analyze是MySQL提供的一个分析结果集的接口,以帮助提供数据类型优化建议。其语法格式如下: SELECT … FROM … WHERE … PROCEDURE ANALYSE([max_elements,[max_memory]]) max_elements(默认256)表示最多使用这么多个不同的列值来进行分析,是否可以使用ENUM类型,如果有超过这么多个不同的值,enum就不会纳入到考虑中。 max_memory(默认8192),是Analyze()为每个列分配的最大内存,用于尝试找到所有不同的列值。 例如,我们在一个普通的表上执行: mysql> select k from sbtest99 procedure analyse()\G *************************** 1. row *************************** Field_name: sb1.sbtest99.k Min_value: 12992 Max_value: 85008 Min_length: 5 Max_length: 5 Empties_or_zeros: 0 Nulls: 0 Avg_value_or_avg_length: 49996.6047 Std: 43159.4545 Optimal_fieldtype: MEDIUMINT(5) UNSIGNED NOT NULL 1 row in set (0.03 sec) […]


MySQL5.6.23: fix “UNABLE TO PURGE A RECORD”

本文简述下之前我们线上频繁碰到的“UNABLE TO PURGE A RECORD”的原因 ################################################### 线上实例错误日志中偶尔出现 “UNABLE TO PURGE A RECORD”,从官方bug系统来看,很多用户都遇到了类似的问题。 原创文章,转载请注明: 转载自Simple Life 本文链接地址: MySQL5.6.23: fix “UNABLE TO PURGE A RECORD” Post Footer automatically generated by wp-posturl plugin for wordpress.


changes of mysql 5.6.20

New option 【Rev:5936】【Rev:6045】【Rev:6049】The new system variable binlog_impossible_mode controls what happens if the server cannot write to the binary log, for example, due to a file error. For backward compatibility, the default for binlog_impossible_mode is IGNORE_ERROR, meaning the server logs the error, halts logging, and continues updates to the database. Setting this variable to ABORT_SERVERmakes the server halt logging and shut down […]


MySQL5.7.4的semisync优化:异步化binlog dump及接受ack

很高兴的看到,在MySQL5.7版本里,semisync开始进行显著的优化,fix了不少遗留bug,例如支持一主多备的半同步;在server层判断备库是否要求半同步以减少Plugin锁冲突;支持在事务commit前等待ACK;解除binlog dump线程和LOCK_log的冲突等等。 在MySQL5.7.4里,俺最关注的改进当然是对发送binlog和接受ack的异步化了。开发者的博客的测试数据还是比较诱人的;偷个懒,直接扣的作者的图 🙂 旧的逻辑:             新的逻辑:                 在开发者的测试中,最大可以达到4x的tps提升,网络延迟越大,TPS提升越明显 详细见开发者博客(貌似要翻墙): http://my-replication-life.blogspot.sg/2014/03/faster-semisync-replication.html 花了一天时间把这些改进port到了我们的内部分支alisql5.5,简单测试了下: 使用sysbench, 20个表,每个表30w数据,负载为update_index.lua,100个session并发 在不开启备库延迟刷mater info的情况下,使用AFTER_COMMIT,从11000TPS上升到20000,而在AFTER_SYNC场景下,从16000上升到25000 测试的两个实例属于同城异地机房,Ping的延迟在0.75ms左右。 从测试的结果来看,性能提升还是非常明显的,具体实现不多说了,worklog上写的非常详细: worklog链接:http://dev.mysql.com/worklog/task/?id=6630 launchpad链接:http://bazaar.launchpad.net/~mysql/mysql-server/5.7/revision/7351 大体的实现思路是: 备库io线程使用TCP协议和主库交互,读写socket可以同时进行; 在开启主库semisync时,启动一个后台线程,使用select监听备库连接socket; dump线程不再等待备库ACK;在ack reciver线程等待ACK时,dump线程还能继续发送下一组group commit的binlog,进而提升TPS 原创文章,转载请注明: 转载自Simple Life 本文链接地址: MySQL5.7.4的semisync优化:异步化binlog dump及接受ack Post Footer automatically generated by wp-posturl plugin for wordpress.


博客挪窝了

hi,all,俺的blog已经从http://blog.csdn.net/zhaiwx1987 挪窝到这里了。 测试一把….. 原创文章,转载请注明: 转载自Simple Life 本文链接地址: 博客挪窝了 Post Footer automatically generated by wp-posturl plugin for wordpress.