摘要: 计数排序、桶排序与基数排序 阅读全文
posted @ 2010-05-20 20:30 YY哥 阅读(1942) 评论(0) 推荐(1) 编辑
摘要: 最长不重复子串的算法 阅读全文
posted @ 2010-05-16 23:13 YY哥 阅读(3200) 评论(0) 推荐(0) 编辑
摘要: 一道算法题,求更好的解法 阅读全文
posted @ 2010-05-14 21:19 YY哥 阅读(3882) 评论(18) 推荐(3) 编辑
摘要: 分治的BSF算法。。。 阅读全文
posted @ 2010-05-13 21:16 YY哥 阅读(2564) 评论(1) 推荐(1) 编辑
摘要: 数组与指针的貌离神合。。。 阅读全文
posted @ 2010-05-07 22:41 YY哥 阅读(1183) 评论(1) 推荐(0) 编辑
摘要: 对于服务器程序,I/O是制约系统性能最关键的因素。对于需要处理大量连接的高并发服务器程序,异步I/O几乎是不二的选择。Linux和Windows都为异步I/O构建了大量的基础设施。本文总结了一下Linux和Windows下的异步I/O模型,并给出了一些使用这些模型的例子。 阅读全文
posted @ 2010-04-10 12:56 YY哥 阅读(12930) 评论(7) 推荐(4) 编辑
摘要: Lemon是一个LALR(1)文法分析器生成工具。虽然它是SQLite作者针对SQLite写的一个分析器生成工具,但是它与bison和yacc类似,是一个可以独立于SQLite使用的开源的分析器生成工具。而且它使用与yacc(bison)不同的语法规则,可以减少编程时出现错误的机会。Lemon比yacc和bison更精致、更快,而且是可重入的,也是线程安全的。本文简要的整理了一下Lemon的使用以及SQLite相应的语法规则。 阅读全文
posted @ 2010-03-23 20:47 YY哥 阅读(12329) 评论(2) 推荐(5) 编辑
摘要: 有一些日子没有仔细关注SQLite了,今天打开其主页,发现其最新的版本已经是3.6.22了,更让我惊喜的是它的用户越来越多,而且邮件列表的关注者也越来越多,突然觉得自己已经太old了。惊喜的同时,不得不聊上几句了。 阅读全文
posted @ 2010-01-27 19:32 YY哥 阅读(15157) 评论(21) 推荐(2) 编辑
摘要: 分区是数据库管理系统实现并行处理的一种重要手段。MySQL从5.1开始,开始支持分区这一神奇的功能。但是,目前,MySQL做得还不够多(相对于Oracle),还处于开始阶段,查询优化没有充分利用分区带来的并行优势;不过,它正在努力,有理由相信它能够做好。早在关系数据库出现初期,并行数据库就随之而生,以Teradata为代表的商业化产品已经得到市场的广泛认可,而且也是数据库系统发展的方向。2003年,MySQL从Ericsson公司取得NDB存储引擎,从此,开始了并行数据库之路。 分区并不等于并行数据库。但是,通过分区,能够为数据库管理系统带来某些并行特性,比如并行I/O,并行查询。也许将并行数据库与NDB Cluster一起讨论会更好。但是,分区与并行本来就有一种天然的联系。了解并行数据库的基本概念,才能真正理解分区;同样,理解分区,又会加深对并行数据库的理解。So,enjoy it。 阅读全文
posted @ 2009-12-24 21:36 YY哥 阅读(29081) 评论(7) 推荐(8) 编辑
摘要: 复制(replication)是分布式数据库系统重要的特征之一,几乎所有的现代数据库管理系统都不同程度的支持复制。复制带来的好处很明显,数据分布式存储,随之而来的其它一系列优点:负载均衡,高可用性,高性能,容错等等。但是,另一方面,它增加了系统管理的复杂性,尤其是更新的开销,这是数据分布无法避免的。不管怎样,复制都是建立一个高性能、高可用性的分布式数据库平台的起点。所以,享受它吧。 阅读全文
posted @ 2009-12-19 11:33 YY哥 阅读(100340) 评论(17) 推荐(17) 编辑
摘要: 索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点。考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为 4K,并存储100条记录。如果没有索引,查询将对整个表进行扫描,最坏的情况下,如果所有数据页都不在内存,需要读取10^4个页面,如果这10^4个页面在磁盘上随机分布,需要进行10^4次I/O,假设磁盘每次I/O时间为10ms(忽略数据传输时间),则总共需要100s(但实际上要好很多很多)。如果对之建立B-Tree索引,则只需要进行log100(10^6)=3次页面读取,最坏情况下耗时30ms。这就是索引带来的效果,很多时候,当你的应用程序进行SQL查询速度很慢时,应该想想是否可以建索引。 阅读全文
posted @ 2009-10-28 20:24 YY哥 阅读(358564) 评论(33) 推荐(64) 编辑
摘要: 最早接触的MySQL是在三年前,那时候MySQL还是4.x版本,很多功能都不支持,比如,存储过程,视图,触发器,更别说分布式事务等复杂特性了。但从5.0(2005年10月)开始,MySQL渐渐步入企业级数据库的行列了;复制、集群、分区、分布式事务,这些企业级的特性,使得现在的MySQL,完全可以应用于企业级应用环境(很多互联网公司都用其作为数据库服务器,尽管节约成本是一个因素,但是没有强大功能作后盾,则是不可想象的)。虽然,MySQL还有很多不足,比如,复制、分区的支持都十分有限、查询优化仍需要改进,但是MySQL已经是一个足够好的DBMS了,更何况它是 opensource的。这段时间没有事,出于好奇,略微的研究了一下MySQL,积累了一些资料,欲总结出来。这些资料打算分为两部分,上部主要讨论 MySQL的优化,其中主要参考了《MySQL Manual》和《High Performance MySQL》,如果有时间,以后在下部分析一下MySQL的源码。如果你是MySQL高手,希望你不吝赐教;如果你是新手,希望对你有用。 阅读全文
posted @ 2009-10-18 21:52 YY哥 阅读(29833) 评论(11) 推荐(8) 编辑
摘要: 关于Windows的关键代码段(Critical Sections) 和自旋锁(Spinlocks)的小结 阅读全文
posted @ 2009-09-29 17:41 YY哥 阅读(7632) 评论(0) 推荐(2) 编辑
摘要: 协议相关 阅读全文
posted @ 2009-09-26 11:39 YY哥 阅读(8351) 评论(0) 推荐(0) 编辑
摘要: 接收帧 阅读全文
posted @ 2009-09-26 10:41 YY哥 阅读(11226) 评论(0) 推荐(0) 编辑
摘要: 网络设备注册 阅读全文
posted @ 2009-09-23 20:42 YY哥 阅读(7249) 评论(1) 推荐(1) 编辑
摘要: 网络设备(network device)概述 阅读全文
posted @ 2009-09-22 21:49 YY哥 阅读(9165) 评论(2) 推荐(1) 编辑
摘要: 套接字缓存(socket buffer)概述 阅读全文
posted @ 2009-09-19 10:02 YY哥 阅读(15115) 评论(0) 推荐(0) 编辑
摘要: 同步阻塞I/O、同步非阻塞I/O、异步阻塞I/O与异步非阻塞I/O 阅读全文
posted @ 2009-09-18 19:32 YY哥 阅读(8827) 评论(1) 推荐(3) 编辑
摘要: socket实现 阅读全文
posted @ 2009-09-17 20:42 YY哥 阅读(8097) 评论(2) 推荐(0) 编辑