数据库的事务以及事务隔离级别2020-02-14数据库事务是数据库管理系统执行过程中的一个逻辑单位,包含了一个有限的数据库操作序列。事务不是天然存在的东西,它是被人为创造出来,目的是简化应用层的编程模型。数据库事务有两个目的:(1)定义一个逻辑单位,以便于当数据库从故障中恢复的时候能正确地恢复数据;(2)提供一种隔离方式,以便于解决多个客户端并发操作的时候出现的奇怪问题。… more
用Python的pulp库求解线性规划问题2020-01-19线性规划(Linear planning 或者 Linear programming)是最常见的优化技术,在运筹学(operation research)、规划(planning)等领域有很多的应用场景。虽然不像机器学习那样被大肆宣传,但是对可以通过具有线性关系的决策变量来表达的问题而言却是最首选的方法。… more
《Clean Code》阅读笔记2018-08-17《Clean Code-A Handbook of Agile Software Craftsmanship》中文名称是《代码整洁之道》,这本书出版于2008年,10年时间对于飞速发展的技术而言显得很长,因此,其中的部分道理已经显得有点过时。但是,瑕不掩瑜,这本书仍然是每个软件开发工程师都应该阅读、理解并且实践的行为标准。… more
Linux mount命令详解2014-05-23mount命令在我心目中一直是个高大上的命令:首先,经常看见长度很长的mount命令;其次,mount是直接配置硬件的命令,敲命令的时候总是难免担心把机器搞挂了。因此,我一直以来在Mac OS和Ubuntu中都依靠操作系统自动检查插入的磁盘,就像在Windows里面一样,简直弱爆了。今天就抽空把整理一下这方面的知识。… more
MySQL查询优化:tmp_table_size与max_heap_table_size2014-04-18对于某些query,MySQL会创建临时表来进行处理,临时表有两种:基于MEMORY存储引擎的临时内存表以及基于MyISAM存储引擎的临时磁盘表。当临时内存表的大小达到一定限制的时候,MySQL就会将临时内存表写入到磁盘,变为临时磁盘表。这个限制由tmp_table_size和max_heap_table_size这两个变量中的最小值确定。 … more
Linux dig 命令详解2014-02-12之所以会关注到这个命令,是因为最近在研究 MySQL的主从复制 相关的技术,希望能实现当Slave落后Master比较多的时候自动将Slave从数据源中去除掉的功能。找了很多资料,没有比较好的现成办法。只能参考 percona-toolkit 中的 pt-heartbeat 命令的实现自己来做,在实现的过程中,发现这个`dig`命令,深感有必要记录一下。 … more
令牌桶算法/Token Bucket Algorithm2014-01-25在电信网络中最常用的流量控制算法是 令牌桶算法(Token Bucket Algorithm),在Linux上同样也用了这个算法来 对带宽进行管理。当然使用场景不仅仅局限于此,凡是涉及到流量控制的地方都可以使用这种方法。例如,我们可以用这种方法对Web Service的访问量进行控制,可以避免Web Service遭受到恶意的攻击,也可以实现较复杂的流量分级计费,比如:调用次数1000次/s以下,每天收费10元;1000-2000次/s以下,每天收费40元等。 … more