摘要: 最近一段时间由于工作需要,开始关注针对Mysql数据库的select查询语句的相关优化方法。 由于在参与的实际项目中发现当mysql表的数据量达到百万级时,普通SQL查询效率呈直线下降,而且如果where中的查询条件较多时,其查询速度简直无法容忍。曾经测试对一个包含400多万条记录(有索引)的表执行一条条件查询,其查询时间竟然高达40几秒,相信这么高的查询延时,任何用户都会抓狂。因此如何提高sql语句查询效率,显得十分重要。以下是网上流传比较广泛的30种SQL查询语句优化方法:1、应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。2、对查询 阅读全文
posted @ 2012-02-08 23:01 Lux 阅读(15382) 评论(0) 推荐(2) 编辑
摘要: 搭建Android开发环境1下载Android SDKhttp://code.google.com/android/download.html这是官方网址,进入后跟着流程走,选择适合于自己平台(这里是Windows)的SDK包下载。下载后直接解压就可以使用了。为了在DOS控制台中直接使用SDK的工具,可以将SDK的目录添加到Windows的path环境变量中:在桌面上右击“我的电脑”,依次点击【属性】>【高级】>【环境变量】。双击【系统变量】里面的Path项,将Android SDK中tools目录的完整路径添加到这里。2下载JDK6http://java.sun.com/java 阅读全文
posted @ 2011-06-19 22:14 Lux 阅读(425) 评论(2) 推荐(0) 编辑
摘要: 1.轮叫调度(Round Robin)(简称rr)调度器通过“轮叫”调度算法将外部请求按顺序轮流分配到集群中的真实服务器上,它均等地对待每一台服务器,而不管服务器上实际的连接数和系统负载。2.加权轮叫(Weighted Round Robin)(简称wrr)调度器通过“加权轮叫”调度算法根据真实服务器的不同处理能力来调度访问请求。这样可以保证处理能力强的服务器能处理更多的访问流量。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。3.最少链接(Least Connections)(LC)调度器通过“最少连接”调度算法动态地将网络请求调度到已建立的链接数最少的服务器上。如果集群系统的真 阅读全文
posted @ 2011-01-11 15:54 Lux 阅读(5554) 评论(0) 推荐(0) 编辑
摘要: snort中的frag2预处理器,存储IP分片用的是二叉树,一直看不明白二叉树的代码部分,不知道代码里面操作的含义。偶然查找splay tree关键词,发现它用的是伸展树,疑问解决了!假设想要对一个二叉查找树执行一系列的查找操作。为了使整个查找时间更小,被查频率高的那些条目就应当经常处于靠近树根的位置。于是想到设计一个简单方法,在每次查找之后对树进行重构,把被查找的条目搬移到离树根近一些的地方。splay tree应运而生。splay tree是一种自调整形式的二叉查找树,它会沿着从某个节点到树根之间的路径,通过一系列的旋转把这个节点搬移到树根去。重构方法1、单旋:在查找完位于节点x中的条目i 阅读全文
posted @ 2011-01-07 16:52 Lux 阅读(407) 评论(0) 推荐(1) 编辑
摘要: Pthreads并行编程之spin lock与mutex性能对比分析POSIX threads(简称Pthreads)是在多核平台上进行并行编程的一套常用的API。线程同步(Thread Synchronization)是并行编程中非常重要的通讯手段,其中最典型的应用就是用Pthreads提供的锁机制(lock)来对多个线程之间共 享的临界区(Critical Section)进行保护(另一种常用... 阅读全文
posted @ 2010-12-01 11:46 Lux 阅读(914) 评论(0) 推荐(1) 编辑
摘要: 多线程队列的算法优化多线程队列(Concurrent Queue)的使用场合非常多,高性能服务器中的消息队列,并行算法中的Work Stealing等都离不开它。对于一个队列来说有两个最主要的动作:添加(enqueue)和删除(dequeue)节点。在一个(或多个)线程在对一个队列进行enqueue操作的同时可能会有一个(或多个)线程对这个队列进行dequeue操作。因为enqueue和deque... 阅读全文
posted @ 2010-11-23 16:41 Lux 阅读(1726) 评论(1) 推荐(2) 编辑
摘要: Bloom Filter概念和原理焦萌 2007年1月27日Bloom Filter是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。Bloom Filter的这种高效是有一定代价的:在判断一个元素是否属于某个集合时,有可能会把不属于这个集合的元素误认为属于这个集合(false positive)。因此,Bloom Filter不适合那些R... 阅读全文
posted @ 2010-07-12 14:28 Lux 阅读(314) 评论(0) 推荐(1) 编辑
摘要: Linux给我们提供了丰富的内部进程通信机制,包括共享内存、内存映射文件、先入先出(FIFO)、接口(sockets)以及多种用于同步的标识。 一般来说,内部进程通信(interprocess communication)也就是IPC,是指两个或两个以上进程以及两个或者两个以上线程之间进行通信联系。每个IPC机制都有不同的强项或者弱点,不过没有一个IPC机制包含内建的同步方法。因此程序员不但需要自... 阅读全文
posted @ 2010-07-02 09:39 Lux 阅读(1357) 评论(0) 推荐(1) 编辑
摘要: 以下是Linux系统调用的一个列表,包含了大部分常用系统调用和由系统调用派生出的的函数。这可能是你在互联网上所能看到的唯一一篇中文注释的Linux系统调用列表,即使是简单的字母序英文列表,能做到这么完全也是很罕见的。  按照惯例,这个列表以man pages第2节,即系统调用节为蓝本。按照笔者的理解,对其作了大致的分类,同时也作了一些小小的修改,删去了几个仅供内核使用,不允许用户调用的系统调用,对... 阅读全文
posted @ 2010-07-01 16:44 Lux 阅读(3447) 评论(0) 推荐(3) 编辑
摘要: 1 引言 随着Intenet的日益发展和普及,网络在嵌入式系统中应用非常广泛,越来越多的嵌入式设备采用Linux操作系统。Linux是一个源代码公开的免费操作系统,具有强移植性,所以对基于Linux的Socket网络编程的研究越来越重要。Socket实际是网络传输层供给应用层的编程接口。传输层则在网络层的基础上提供进程到进程问的逻辑通道,而应用层的进程则利用传输层向另一台主机的某一进程通信。Soc... 阅读全文
posted @ 2010-06-13 11:39 Lux 阅读(3152) 评论(0) 推荐(0) 编辑