testing-04

技术细节

  • sphinx使用介绍(前篇)

    ·

    到今天为止校内论坛Discuz)上的主题数量已经到达了40w,所有回复约500W。随着数据量的增大,DZ自带的站内搜索给数据库的带来的压力越来越大,甚至会导致数据库停止服务(MyISAM在SLOW Query和update并发问题)。取代站内搜索,我们使用了google的自定义搜索服务,google的速度非常快,但是对于论坛来说,Google不能返回实时的搜索结果,而且也无法定制搜索(如安装标题、作者、内容)。

    所以,我们将尝试使用sphinx来解决这个问题。先看看sphinx是怎样工作的: (more…)

  • InnoDB之Dirty page、Redo log

    ·

    在InnoDB中,buffer pool里面的dirty page一方面可以加快数据处理速度,同时也会造成数据的不一致(RAM vs DISK)。本文介绍了dirty page是如何产生,以及InnoDB如何利用redo log如何消除dirty page产生的数据不一致。

    1. 当事务(Transaction)需要修改某条记录(row)时,InnoDB需要将该数据所在的page从disk读到buffer pool中,事务提交后,InnoDB修改page中的记录(row)。这时buffer pool中的page就已经和disk中的不一样了,我们称buffer pool中的page为dirty page。Dirty page等待flush到disk上。
      dirty_pages
      (more…)
  • 在php中常见的计算字符串长度的函数有:strlen和mb_strlen,下面是对这两个函数的比较说明(编码方式UTF8)

    • 比较strlen和mb_strlen
      当字符全是英文字符的时候,两者是一样。这里主要比较一下,中英文混排的时候,两个计算结果。(测试时编码方式是UTF8)
      (more…)