摘要:
一、数据库中事务的隔离等级 这里首先要明确的是,这里的“隔离”都是在“事务”的基础上讨论的,通常的事务通过 start transaction开启,之后通过rollback或者commit来结束。由于大部分情况下对于mysql的操作都是单条语句的操作,我想大部分人在操作mysql的时候不是在操作测试 阅读全文
摘要:
一、协程基础 按照执行单位从大到小的粒度区分,最早的执行单位就是进程(或者linux内核中所说的task)、之后为了资源共享,又有了线程的概念。线程在内核中成为基础的执行单位。线程这个概念对内核来说也是可见的,也就是说内核为了支持线程和进程的机制做过相关的处理,但是在linux下,这个处理的大部分工 阅读全文
摘要:
一、锁的意义 在一个复杂一点的并发系统中,锁始终是一个绕不开的存在,大家通常接触到这个概念最多的是多任务操作系统,例如服务器比较常用的linux操作系统。在所有的操作系统教材中,都会对锁进行描述,生产者/消费者问题;哲学家就餐问题等都是典型的入门例子,所以锁最为常见的应用场景就是在操作系统中。但是, 阅读全文
摘要:
一、时间比较的语法分析 在mysql中,通常时间是一个必不可少的类型,而这种类型的一个特殊地方就在于它的比较函数。其实,即使对于字符串的比较函数和对于int的比较也是完全不同的,但是这个差别并不想以datetime保存的时间这么具有视觉的震撼性和表现的这么明显。这里还有一个问题在于,当mysql的y 阅读全文
摘要:
一、shift生成 这个算法之前大致看过一下,在grep中再次遇到了该算法,大致想了下它的具体实现,发现shift数组的计算并没有像KMP中那样的迭代过程,之后就在网络上搜索了下这个算法的描述,主要是看shift的生成方法,具体思想描述有不少图片甚至视频展示,这里就不详细说明了。关于shift的生成 阅读全文
摘要:
一、问题 在编可执行文件的时候,为了图方便,没有使用工程的Makefile,而是自己做了一些特殊的处理,选择性的编译了一部分代码,导致最后调试时发现一些文件访问singleton特定组件时错误,然后就想了下C++对于头文件中定义的static类成员中的static变量是如何实现及保证这个单件的唯一性 阅读全文
摘要:
一、select s from f where w这是一个最为基础的sql语句,相当于C语言的printf("hello world\n");对于一个简单的应用来说,知道这个套路解决一般问题是没有难度的,在一些复杂的场景,例如涉及到subselect、join、union等各种各样的延伸问题时,如果 阅读全文
摘要:
一、多表操作这个问题并不是一个空穴来风的纯粹分析,应用的场景是假设一个数据库中相同的表格内容是按照每个月创建一个table,这样的好处在于随着日期的变化,我们可以通过一个简单的drop命令删除不再需要的数据,而且表的大小也不会太膨胀。这些好处的作用非常明显,但是也有一些不太方便的地方,假设我们想知道 阅读全文
摘要:
一、除重在一些数据库查询中,我们希望一些记录是唯一的,比如希望查找某一项的最大值,由于table中可能有多条记录他们的值相同,都是最大值,例如一些有上限的属性,很容易出现多条record的属性值都达到上限的情况,此时我们可能只需要一条,验证它的确曾经达到过上限,此时比较好的办法就是使用group b 阅读全文
摘要:
一、apache的worker模式下保活选项由于http的keepalive是控制apache行为的一个重要的特征,所以大致看了一下这个机制的实现及意义。通常来说,如果进行定性的分析,大家都可以随便信口开河,甚至望文生义也可以胡诌半天,但是这些结论对于真正的应用来说意义极小。就好像你说,我这个结论有 阅读全文