开启自己的微信公众号了
开启自己的个人公众号了 欢迎大家关注
【MySQL】漫谈死锁
死锁是每个MySQL DBA 都会遇到的技术问题,本文自己针对死锁学习的一个总结,了解死锁是什么,MySQL如何检测死锁,处理死锁,死锁的案例,如何避免死锁。
【Python】python内置函数介绍
在编写Python 程序或者工具脚本时,需要完成某个功能,可以选择编写一个具体的函数达到目的,当然也可以通过匿名/Python 内建函数来完成。本问讲述常见的Python匿名、内建函数---lambda,map,filter,reduce .
有赞MySQL自动化运维之路—ZanDB
本文介绍了 有赞 数据库运维自动化实践从0 到1 的过程 。
【MySQL】如何阅读死锁日志
工欲善其事必先利其器,前面分析了很多死锁案例,并没有详细的介绍如何通过死锁日志来诊断死锁的成因。本文将介绍如何读懂死锁日志,尽可能的获取信息来辅助我们解决死锁问题。
【MySQL】死锁案例之四
本文介绍一例三个并发insert 导致的死锁,根本原因还是在于insert 唯一键申请插入意向锁这个特殊的GAP锁。其实称呼插入意向锁 为 Insert Intention Gap Lock 更为合理。
【MySQL】死锁案例之一
本文研究了RR事务隔离级别下,普通索引与唯一键两种情况的死锁场景,尤其是需要注意delete语句的加上特性是本文案例的重点。
【MySQL】死锁案例之二
本文源于我们的生产案例:并发申请gap锁导致的死锁案例,与之前的 死锁案例一不同,本案例是因为RR模式下两个事务中的sql可以获取同一个gap锁,导致对方事务的insert 相互等待,导致死锁的。
【MySQL】死锁案例之三
本文介绍了 并发insert 遇到唯一键冲突 和GAP锁两个因素叠加导致死锁的案例。
【MySQL】浅谈一致性读
MySQL 在不同的事务隔离级别下提供两种读模式 一致性读(非加锁), 当前读(加锁读)。当前读比较简单,本文主要研究一致性读取。
【MySQL】使用innobackup 2.4遇到的问题
Percona公司发布 innobackup 2.4 版本已经很久了,增加了新的特性比如xtrabackup支持非Innodb表备份,指定 --safe-slave-backup,增加备份的一致性,最重要的一点是支持5.7的备份,2.2是不能备份5.7 版本的。本文主要记录我们使用 2.4 版本过程中遇到的问题和之前的一些改变。
【MySQL】浅析interactive_timeout和wait_timeout
本文通过测试我们要弄清楚两个问题 a 继承关系 wait_timeout在session和global级别分别继承那个参数? b 生效参数 在会话中到底哪个参数决定了会话的存活时间?
【MySQL】再说order by 优化
order by 语句的优化是MySQL DBA处理业务慢查询的时候经常遇到的情况,本文比较详细的针对常见的业务场景做分析,能够帮助开发掌握什么样的语句可以利用到索引排序,什么的sql 需要规避。
【Redis】Sentinel 高可用架构
Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案,当用Redis做Master-slave的高可用方案时,假如master宕机了,Redis本身(包括它的很多客户端)都没有实现自动进行主备切换,而Redis-sentinel本身也是一个独立运行的进程,它能监控多个master-slave集群,发现master宕机后能进行自懂切换。
【Python】模块 fileinput
fileinput 是python 提供的一个可以快速遍历,修改一个或者多个文件的模块。我们可以使用该模块进行文本替换 并做文件备份。
【Python】格式化字符串输出
python 字符串输出格式化有两种方式 %[s,d,] ,还有一种是string.format()。python 2.6 版本提供了后者,其功能也相当强大。
【Python】*args 和 **kwargs的用法
*args 和 **kwargs 主要用于函数定义。 当我们需要定义的函数的传入参数个数不确定时,可以使用*args 和 **kwargs 代替不确定的参数个数。其实并不是必须写成*args 和**kwargs。 只有变量前面的 *(星号)才是必须的. 我们可以写成*var和**vars. 而写成*args 和**kwargs只是一个通俗的命名约定。
【Python】map函数
Python 内置了很多非常有用的函数 比如map() ,reduce(),filter(),还有lambda。熟练应用这些函数可以在写python程序的时候构建精简的代码。本文先来了解map函数。
【Shell】sort 笔记
sort 的功能是将文件/文本的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。
【Python】浅谈 multiprocessing
使用python进行并发处理多台机器/多个实例的时候,我们可以使用threading ,但是由于著名的GIL存在,实际上threading 并未提供真正有效的并发处理,要充分利用到多核CPU,我们需要使用多进程。Python提供了非常好用的多进程包--multiprocessing。multiprocessing 可以利用multiprocessing.Process对象来创建一个进程,该Process对象与Threading对象的用法基本相同,具有相同的方法(官方原话:"The multiprocessing package mostly replicates the API of the threading module.") 比如:start(),run(),join()的方法。multiprocessing包中也有Lock/Event/Semaphore/Condition/Pipe/Queue类用于进程之间的通信。话不多说 show me the code!