用git从svn里clone最后几个版本
一般情况下git svn clone这个操作会从第一个版本开始同步,如果版本号已经到了好几万(或更高?),这个操作会相当的费时。
当时还想着能不能hack一下git-svn脚本,其实后来看看文档,clone操作可以使用参数-r$REVNUMBER:HEAD检出指定版本后的代码,因此,更好的步骤应该是这样:
mysql的partition与auto_increment
mysql 5.1之后,开始新增了partition功能,可以做到对代码透明的情况下进行数据分区。但是从实际使用中来看,限制颇多:
如果用来分区的字段和主键不是同一个,则不能分区
subcon使用笔记
在温习flickr的ppt时,看到里面提到了一个叫subcon的工具。由于这个工具已经在google code上开源,所以我毫不客气的下载回来细细端详:
这工具用python写的
在生产环境中使用php性能测试工具xhprof
xhprof是facebook开源出来的一个php性能测试工具,也可以称之为profile工具,这个词不知道怎么翻译才比较达意。跟之前一直使用的xdebug相比,有很多类似之处。以前对xdebug有一些记录还可以供参考,但是它的缺点是对性能影响太大,即便是开启了profiler_enable_trigger参数,用在生产环境中也是惨不忍睹,cpu立刻就飙到high。
而xhprof就显得很轻量,是否记录profile可以由程序控制,因此,用在生产环境中也就成为一种可能。在它的文档上可以看到这样一种用法:
启用memcached压缩注意事项
在php开发中,开启memcache的数据压缩存储是一件很简单的事情。在多数情况下,压缩数据不仅不会降低程序的执行效率,反倒会因为网络传输的开销降低,带来速度提升。看看最常用的Memcache::set方法:
bool Memcache::set ( string $key , mixed $var [, int $flag [, int $expire ]] )
在这个方法中,将$flag设置为MEMCACHE_COMPRESSED即可启用memcache压缩存储。
这样做有什么弊端?
Git-svn on cygwin
开始试用最近比较红的git,我看中的是它的本地版本库功能,即便网络比较烂的时候,也可以在本地提交,等到了合适的时候一并传上去。由于以前的代码版本控制使用的是svn,所以我用git-svn过渡一下。
目前在windows下,最好的git客户端恐怕就是装一个cygwin。鼓捣了一个时辰,整理好一些可用的配置文件,陈列一下以备下次使用:
~/.bash_profile
偶尔还会使用svn验证一下check in的情况,刚转过来不放心啊,下面的配置是为了防止svn命令行乱码。命令行git-svn在/usr/sbin/git-core/路径下,是一个perl脚本,为了方便,我把这个路径加入了PATH环境变量。
关于mysql proxy 0.7.0
听说mysql proxy 0.7.0即将发布,正好前些日子从bzr上获取mysql proxy的代码编译过,看看当时bzr的版本号,和现在也差不了多少。在这期间,我又花了一些时间把mysql配置成读写分离,出了不少妖蛾子,由于使用的人不太多,解决问题超费劲——搜索不到有帮助的内容啊。但是我可能是比较幸运的,最后成功的实现了读写分离,目前在开发环境运行的比较稳定,所以有必要做个笔记分享一下。
读写分离脚本的问题
刚启动mysql proxy的时候,经常报错 -- "Mysql server has gone away"。我进一步缩小了可能出问题的范围(把环境简化是很重要的查错手段哦!),比如只连接一个mysql,或者只连接本机的mysql,没有太大帮助,最后是在mysql proxy的日志文件中看到些蛛丝马迹: