博客园 - Lux
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=16301
2012-02-08T15:00:40Z
Lux
https://www.cnblogs.com/luxf/
feed.cnblogs.com
https://www.cnblogs.com/luxf/archive/2012/02/08/2343345.html
关于mysql处理百万级以上的数据时如何提高其查询速度的方法 - Lux
最近一段时间由于工作需要,开始关注针对Mysql数据库的select查询语句的相关优化方法。 由于在参与的实际项目中发现当mysql表的数据量达到百万级时,普通SQL查询效率呈直线下降,而且如果where中的查询条件较多时,其查询速度简直无法容忍。曾经测试对一个包含400多万条记录(有索引)的表执行一条条件查询,其查询时间竟然高达40几秒,相信这么高的查询延时,任何用户都会抓狂。因此如何提高sql语句查询效率,显得十分重要。以下是网上流传比较广泛的30种SQL查询语句优化方法:1、应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。2、对查询
2012-02-08T15:01:00Z
2012-02-08T15:01:00Z
Lux
https://www.cnblogs.com/luxf/
【摘要】最近一段时间由于工作需要,开始关注针对Mysql数据库的select查询语句的相关优化方法。 由于在参与的实际项目中发现当mysql表的数据量达到百万级时,普通SQL查询效率呈直线下降,而且如果where中的查询条件较多时,其查询速度简直无法容忍。曾经测试对一个包含400多万条记录(有索引)的表执行一条条件查询,其查询时间竟然高达40几秒,相信这么高的查询延时,任何用户都会抓狂。因此如何提高sql语句查询效率,显得十分重要。以下是网上流传比较广泛的30种SQL查询语句优化方法:1、应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。2、对查询 <a href="https://www.cnblogs.com/luxf/archive/2012/02/08/2343345.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/luxf/archive/2011/06/19/2084822.html
搭建Android开发环境(转) - Lux
搭建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
2011-06-19T14:14:00Z
2011-06-19T14:14:00Z
Lux
https://www.cnblogs.com/luxf/
【摘要】搭建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 <a href="https://www.cnblogs.com/luxf/archive/2011/06/19/2084822.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/luxf/archive/2011/01/11/1932972.html
LVS十种调度算法介绍 - Lux
1.轮叫调度(Round Robin)(简称rr)调度器通过“轮叫”调度算法将外部请求按顺序轮流分配到集群中的真实服务器上,它均等地对待每一台服务器,而不管服务器上实际的连接数和系统负载。2.加权轮叫(Weighted Round Robin)(简称wrr)调度器通过“加权轮叫”调度算法根据真实服务器的不同处理能力来调度访问请求。这样可以保证处理能力强的服务器能处理更多的访问流量。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。3.最少链接(Least Connections)(LC)调度器通过“最少连接”调度算法动态地将网络请求调度到已建立的链接数最少的服务器上。如果集群系统的真
2011-01-11T07:54:00Z
2011-01-11T07:54:00Z
Lux
https://www.cnblogs.com/luxf/
【摘要】1.轮叫调度(Round Robin)(简称rr)调度器通过“轮叫”调度算法将外部请求按顺序轮流分配到集群中的真实服务器上,它均等地对待每一台服务器,而不管服务器上实际的连接数和系统负载。2.加权轮叫(Weighted Round Robin)(简称wrr)调度器通过“加权轮叫”调度算法根据真实服务器的不同处理能力来调度访问请求。这样可以保证处理能力强的服务器能处理更多的访问流量。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。3.最少链接(Least Connections)(LC)调度器通过“最少连接”调度算法动态地将网络请求调度到已建立的链接数最少的服务器上。如果集群系统的真 <a href="https://www.cnblogs.com/luxf/archive/2011/01/11/1932972.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/luxf/archive/2011/01/07/1930142.html
Splay Tree - 伸展树(转) - Lux
snort中的frag2预处理器,存储IP分片用的是二叉树,一直看不明白二叉树的代码部分,不知道代码里面操作的含义。偶然查找splay tree关键词,发现它用的是伸展树,疑问解决了!假设想要对一个二叉查找树执行一系列的查找操作。为了使整个查找时间更小,被查频率高的那些条目就应当经常处于靠近树根的位置。于是想到设计一个简单方法,在每次查找之后对树进行重构,把被查找的条目搬移到离树根近一些的地方。splay tree应运而生。splay tree是一种自调整形式的二叉查找树,它会沿着从某个节点到树根之间的路径,通过一系列的旋转把这个节点搬移到树根去。重构方法1、单旋:在查找完位于节点x中的条目i
2011-01-07T08:52:00Z
2011-01-07T08:52:00Z
Lux
https://www.cnblogs.com/luxf/
【摘要】snort中的frag2预处理器,存储IP分片用的是二叉树,一直看不明白二叉树的代码部分,不知道代码里面操作的含义。偶然查找splay tree关键词,发现它用的是伸展树,疑问解决了!假设想要对一个二叉查找树执行一系列的查找操作。为了使整个查找时间更小,被查频率高的那些条目就应当经常处于靠近树根的位置。于是想到设计一个简单方法,在每次查找之后对树进行重构,把被查找的条目搬移到离树根近一些的地方。splay tree应运而生。splay tree是一种自调整形式的二叉查找树,它会沿着从某个节点到树根之间的路径,通过一系列的旋转把这个节点搬移到树根去。重构方法1、单旋:在查找完位于节点x中的条目i <a href="https://www.cnblogs.com/luxf/archive/2011/01/07/1930142.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/luxf/archive/2010/12/01/1893216.html
Pthreads并行编程之spin lock与mutex性能对比分析 - Lux
Pthreads并行编程之spin lock与mutex性能对比分析POSIX threads(简称Pthreads)是在多核平台上进行并行编程的一套常用的API。线程同步(Thread Synchronization)是并行编程中非常重要的通讯手段,其中最典型的应用就是用Pthreads提供的锁机制(lock)来对多个线程之间共 享的临界区(Critical Section)进行保护(另一种常用...
2010-12-01T03:46:00Z
2010-12-01T03:46:00Z
Lux
https://www.cnblogs.com/luxf/
【摘要】Pthreads并行编程之spin lock与mutex性能对比分析POSIX threads(简称Pthreads)是在多核平台上进行并行编程的一套常用的API。线程同步(Thread Synchronization)是并行编程中非常重要的通讯手段,其中最典型的应用就是用Pthreads提供的锁机制(lock)来对多个线程之间共 享的临界区(Critical Section)进行保护(另一种常用... <a href="https://www.cnblogs.com/luxf/archive/2010/12/01/1893216.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/luxf/archive/2010/11/23/1885618.html
多线程队列的算法优化(转) - Lux
多线程队列的算法优化多线程队列(Concurrent Queue)的使用场合非常多,高性能服务器中的消息队列,并行算法中的Work Stealing等都离不开它。对于一个队列来说有两个最主要的动作:添加(enqueue)和删除(dequeue)节点。在一个(或多个)线程在对一个队列进行enqueue操作的同时可能会有一个(或多个)线程对这个队列进行dequeue操作。因为enqueue和deque...
2010-11-23T08:41:00Z
2010-11-23T08:41:00Z
Lux
https://www.cnblogs.com/luxf/
【摘要】多线程队列的算法优化多线程队列(Concurrent Queue)的使用场合非常多,高性能服务器中的消息队列,并行算法中的Work Stealing等都离不开它。对于一个队列来说有两个最主要的动作:添加(enqueue)和删除(dequeue)节点。在一个(或多个)线程在对一个队列进行enqueue操作的同时可能会有一个(或多个)线程对这个队列进行dequeue操作。因为enqueue和deque... <a href="https://www.cnblogs.com/luxf/archive/2010/11/23/1885618.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/luxf/archive/2010/07/12/1775791.html
Bloom Filter概念和原理(收藏) - Lux
Bloom Filter概念和原理焦萌 2007年1月27日Bloom Filter是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。Bloom Filter的这种高效是有一定代价的:在判断一个元素是否属于某个集合时,有可能会把不属于这个集合的元素误认为属于这个集合(false positive)。因此,Bloom Filter不适合那些R...
2010-07-12T06:28:00Z
2010-07-12T06:28:00Z
Lux
https://www.cnblogs.com/luxf/
【摘要】Bloom Filter概念和原理焦萌 2007年1月27日Bloom Filter是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。Bloom Filter的这种高效是有一定代价的:在判断一个元素是否属于某个集合时,有可能会把不属于这个集合的元素误认为属于这个集合(false positive)。因此,Bloom Filter不适合那些R... <a href="https://www.cnblogs.com/luxf/archive/2010/07/12/1775791.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/luxf/archive/2010/07/02/1769679.html
Linux中进程间通信:共享内存使用(收藏) - Lux
Linux给我们提供了丰富的内部进程通信机制,包括共享内存、内存映射文件、先入先出(FIFO)、接口(sockets)以及多种用于同步的标识。 一般来说,内部进程通信(interprocess communication)也就是IPC,是指两个或两个以上进程以及两个或者两个以上线程之间进行通信联系。每个IPC机制都有不同的强项或者弱点,不过没有一个IPC机制包含内建的同步方法。因此程序员不但需要自...
2010-07-02T01:39:00Z
2010-07-02T01:39:00Z
Lux
https://www.cnblogs.com/luxf/
【摘要】Linux给我们提供了丰富的内部进程通信机制,包括共享内存、内存映射文件、先入先出(FIFO)、接口(sockets)以及多种用于同步的标识。 一般来说,内部进程通信(interprocess communication)也就是IPC,是指两个或两个以上进程以及两个或者两个以上线程之间进行通信联系。每个IPC机制都有不同的强项或者弱点,不过没有一个IPC机制包含内建的同步方法。因此程序员不但需要自... <a href="https://www.cnblogs.com/luxf/archive/2010/07/02/1769679.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/luxf/archive/2010/07/01/1769303.html
Linux系统调用列表(收藏) - Lux
以下是Linux系统调用的一个列表,包含了大部分常用系统调用和由系统调用派生出的的函数。这可能是你在互联网上所能看到的唯一一篇中文注释的Linux系统调用列表,即使是简单的字母序英文列表,能做到这么完全也是很罕见的。 按照惯例,这个列表以man pages第2节,即系统调用节为蓝本。按照笔者的理解,对其作了大致的分类,同时也作了一些小小的修改,删去了几个仅供内核使用,不允许用户调用的系统调用,对...
2010-07-01T08:44:00Z
2010-07-01T08:44:00Z
Lux
https://www.cnblogs.com/luxf/
【摘要】以下是Linux系统调用的一个列表,包含了大部分常用系统调用和由系统调用派生出的的函数。这可能是你在互联网上所能看到的唯一一篇中文注释的Linux系统调用列表,即使是简单的字母序英文列表,能做到这么完全也是很罕见的。 按照惯例,这个列表以man pages第2节,即系统调用节为蓝本。按照笔者的理解,对其作了大致的分类,同时也作了一些小小的修改,删去了几个仅供内核使用,不允许用户调用的系统调用,对... <a href="https://www.cnblogs.com/luxf/archive/2010/07/01/1769303.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/luxf/archive/2010/06/13/1757662.html
基于Linux的Socket网络编程的性能优化 - Lux
1 引言 随着Intenet的日益发展和普及,网络在嵌入式系统中应用非常广泛,越来越多的嵌入式设备采用Linux操作系统。Linux是一个源代码公开的免费操作系统,具有强移植性,所以对基于Linux的Socket网络编程的研究越来越重要。Socket实际是网络传输层供给应用层的编程接口。传输层则在网络层的基础上提供进程到进程问的逻辑通道,而应用层的进程则利用传输层向另一台主机的某一进程通信。Soc...
2010-06-13T03:39:00Z
2010-06-13T03:39:00Z
Lux
https://www.cnblogs.com/luxf/
【摘要】1 引言 随着Intenet的日益发展和普及,网络在嵌入式系统中应用非常广泛,越来越多的嵌入式设备采用Linux操作系统。Linux是一个源代码公开的免费操作系统,具有强移植性,所以对基于Linux的Socket网络编程的研究越来越重要。Socket实际是网络传输层供给应用层的编程接口。传输层则在网络层的基础上提供进程到进程问的逻辑通道,而应用层的进程则利用传输层向另一台主机的某一进程通信。Soc... <a href="https://www.cnblogs.com/luxf/archive/2010/06/13/1757662.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/luxf/archive/2010/05/24/1742776.html
单源最短路径Bellman-Ford算法 (转自dutor) - Lux
Dijkstra算法是处理单源最短路径的有效算法,但它局限于边的权值非负的情况,若图中出现权值为负的边,Dijkstra算法就会失效,求出的最短路径就可能是错的。这时候,就需要使用其他的算法来求解最短路径,Bellman-Ford算法就是其中最常用的一个。该算法由美国数学家理查德•贝尔曼(Richard Bellman, 动态规划的提出者)和小莱斯特•福特(Lester F...
2010-05-24T06:44:00Z
2010-05-24T06:44:00Z
Lux
https://www.cnblogs.com/luxf/
【摘要】Dijkstra算法是处理单源最短路径的有效算法,但它局限于边的权值非负的情况,若图中出现权值为负的边,Dijkstra算法就会失效,求出的最短路径就可能是错的。这时候,就需要使用其他的算法来求解最短路径,Bellman-Ford算法就是其中最常用的一个。该算法由美国数学家理查德•贝尔曼(Richard Bellman, 动态规划的提出者)和小莱斯特•福特(Lester F... <a href="https://www.cnblogs.com/luxf/archive/2010/05/24/1742776.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/luxf/archive/2010/03/31/1701536.html
mmap函数的使用方法 - Lux
UNIX网络编程第二卷进程间通信对mmap函数进行了说明。该函数主要用途有三个:1、将一个普通文件映射到内存中,通常在需要对文件进行频繁读写时使用,这样用内存读写取代I/O读写,以获得较高的性能;2、将特殊文件进行匿名内存映射,可以为关联进程提供共享内存空间;3、为无关联的进程提供共享内存空间,一般也是将一个普通文件映射到内存中。函数:void *mmap(void *start,size_t l...
2010-03-31T08:37:00Z
2010-03-31T08:37:00Z
Lux
https://www.cnblogs.com/luxf/
【摘要】UNIX网络编程第二卷进程间通信对mmap函数进行了说明。该函数主要用途有三个:1、将一个普通文件映射到内存中,通常在需要对文件进行频繁读写时使用,这样用内存读写取代I/O读写,以获得较高的性能;2、将特殊文件进行匿名内存映射,可以为关联进程提供共享内存空间;3、为无关联的进程提供共享内存空间,一般也是将一个普通文件映射到内存中。函数:void *mmap(void *start,size_t l... <a href="https://www.cnblogs.com/luxf/archive/2010/03/31/1701536.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/luxf/archive/2010/03/30/1700280.html
GDB调试命令 - Lux
GDB常用调试命令 GDB调试命令命令 描述 backtrace(或bt)查看各级函数调用及参数finish连续运行到当前函数返回为止,然后停下来等待命令frame(或f) 帧编号选择栈帧info(或i) locals查看当前栈帧局部变量的值list(或l)列出源代码,接着上次的位置往下列,每次列10行list 行号列出从第几行开始的10行源代码list 函数名列出某个函数的源代码next(或n)...
2010-03-30T01:42:00Z
2010-03-30T01:42:00Z
Lux
https://www.cnblogs.com/luxf/
【摘要】GDB常用调试命令 GDB调试命令命令 描述 backtrace(或bt)查看各级函数调用及参数finish连续运行到当前函数返回为止,然后停下来等待命令frame(或f) 帧编号选择栈帧info(或i) locals查看当前栈帧局部变量的值list(或l)列出源代码,接着上次的位置往下列,每次列10行list 行号列出从第几行开始的10行源代码list 函数名列出某个函数的源代码next(或n)... <a href="https://www.cnblogs.com/luxf/archive/2010/03/30/1700280.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/luxf/archive/2010/03/25/1694776.html
C程序员常遇到的关于指针的面试题 - Lux
C程序员常遇到的关于指针的面试题[代码]请问运行Test函数会有什么样的结果?答:程序崩溃。因为GetMemory并不能传递动态内存,Test函数中的str一直都是NULL。strcpy(str,"helloworld");将使程序崩溃。[代码]请问运行Test函数会有什么样的结果?答:可能是乱码。因为GetMemory返回的是指向“栈内存”的指针,该指针的地址不是NULL...
2010-03-25T02:23:00Z
2010-03-25T02:23:00Z
Lux
https://www.cnblogs.com/luxf/
【摘要】C程序员常遇到的关于指针的面试题[代码]请问运行Test函数会有什么样的结果?答:程序崩溃。因为GetMemory并不能传递动态内存,Test函数中的str一直都是NULL。strcpy(str,"helloworld");将使程序崩溃。[代码]请问运行Test函数会有什么样的结果?答:可能是乱码。因为GetMemory返回的是指向“栈内存”的指针,该指针的地址不是NULL... <a href="https://www.cnblogs.com/luxf/archive/2010/03/25/1694776.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/luxf/archive/2010/03/23/1692756.html
锁的类型 - Lux
锁的类型:根据完成任务所需要的结构不同,一个应用程序可能会使用多种不同类型的锁原语,因此,开发人员必须避免在一个给定任务中混淆这些锁原语,尤其在使用第三方提供的库时需要格外小心。假设在一个应用程序中,资源R依赖于第三方提供的库,并且在该库中资源R使用L型锁作为同步原语。此时,若开发者需要在应用程序中对资源R使用锁原语,则必须也使用L而不是其他类型的锁原语。接下来的部分将介绍不同类型的锁,并详细说明...
2010-03-23T09:08:00Z
2010-03-23T09:08:00Z
Lux
https://www.cnblogs.com/luxf/
【摘要】锁的类型:根据完成任务所需要的结构不同,一个应用程序可能会使用多种不同类型的锁原语,因此,开发人员必须避免在一个给定任务中混淆这些锁原语,尤其在使用第三方提供的库时需要格外小心。假设在一个应用程序中,资源R依赖于第三方提供的库,并且在该库中资源R使用L型锁作为同步原语。此时,若开发者需要在应用程序中对资源R使用锁原语,则必须也使用L而不是其他类型的锁原语。接下来的部分将介绍不同类型的锁,并详细说明... <a href="https://www.cnblogs.com/luxf/archive/2010/03/23/1692756.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/luxf/archive/2010/03/23/1692750.html
如何去检测主机网络的连接状态(C#) 收藏 - Lux
如何去检测网络的连接状态(C#) 收藏 在有些程序中,你可能希望能检测网络是否连通的,而又不想销耗过多的系统资源,下面的方法是直接调用系统的API去做到检测。 1. 方法定义 [DllImport("wininet.dll")] private extern static bool InternetGetConnectedState( out int connectionDescriptio...
2010-03-23T09:03:00Z
2010-03-23T09:03:00Z
Lux
https://www.cnblogs.com/luxf/
【摘要】如何去检测网络的连接状态(C#) 收藏 在有些程序中,你可能希望能检测网络是否连通的,而又不想销耗过多的系统资源,下面的方法是直接调用系统的API去做到检测。 1. 方法定义 [DllImport("wininet.dll")] private extern static bool InternetGetConnectedState( out int connectionDescriptio... <a href="https://www.cnblogs.com/luxf/archive/2010/03/23/1692750.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/luxf/archive/2010/03/09/1681610.html
虚拟内存管理总结 - Lux
虚拟内存管理总结 (转) 操作系统为每一个进程维护着一个虚拟的地址空间,这个地址空间的大小通常取决于系统的地址线数目,比如在32位系统中,虚拟地址空间的返回就是0×00000000~0xFFFFFFFF,大小共4G。通常操作系统会划分出一部分来专门供内核使用,而不允许用户进程直接访问。Linux内核占用4G中高地址的1G,即0XC0000000~0XFFFFFFFF,windows内核...
2010-03-09T05:50:00Z
2010-03-09T05:50:00Z
Lux
https://www.cnblogs.com/luxf/
【摘要】虚拟内存管理总结 (转) 操作系统为每一个进程维护着一个虚拟的地址空间,这个地址空间的大小通常取决于系统的地址线数目,比如在32位系统中,虚拟地址空间的返回就是0×00000000~0xFFFFFFFF,大小共4G。通常操作系统会划分出一部分来专门供内核使用,而不允许用户进程直接访问。Linux内核占用4G中高地址的1G,即0XC0000000~0XFFFFFFFF,windows内核... <a href="https://www.cnblogs.com/luxf/archive/2010/03/09/1681610.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/luxf/archive/2010/01/17/1650067.html
网络入侵检测开发包 Libnids(转) - Lux
Libnids(Library Network Intrusion Detection System)是一个网络入侵检测开发的专业编程接口。它实现了基于网络的入侵检测系统的基本框架,并提供了一些基本的功能。使用Libnids可以快速地构建基于网络的入侵检测系统,并可以在此基础上进一步扩展开发。Libnids实现了入侵检测系统的底层功能,使开发者可以专注于高层的功能开发。 Libnids是基于Lib...
2010-01-17T10:09:00Z
2010-01-17T10:09:00Z
Lux
https://www.cnblogs.com/luxf/
【摘要】Libnids(Library Network Intrusion Detection System)是一个网络入侵检测开发的专业编程接口。它实现了基于网络的入侵检测系统的基本框架,并提供了一些基本的功能。使用Libnids可以快速地构建基于网络的入侵检测系统,并可以在此基础上进一步扩展开发。Libnids实现了入侵检测系统的底层功能,使开发者可以专注于高层的功能开发。 Libnids是基于Lib... <a href="https://www.cnblogs.com/luxf/archive/2010/01/17/1650067.html" target="_blank">阅读全文</a>