- 博客(14)
- 资源 (28)
- 收藏
- 关注
原创 (3)mysql优化之sql语句优化
概述该篇主要介绍一些常用的sql优化技巧sql优化1.select * from table_name where;建议将*改为需要的列。这对速度不会有明显的影响,主要考虑节省内存。2.like语句一般情况下不鼓励使用like操作,如果非使用不可,如何使用也是一个问题。like “%aaa%” 不会使用索引而like “aaa%”可以使用索引。3.不要在列上进行运算,无法运用索引select * f
2015-05-31 16:52:36 729
原创 (2)mysql优化之使用索引优化查询
概述 索引是数据库优化中最常用的也是最重要的手段之一。该篇看看索引的分类,使用场景,不能使用的场景等。索引分类 索引是在mysql存储引擎中实现的,而不是在服务器层实现的。索引每种存储引擎的索引不一定相同。mysql支持4种索引:B-tree索引:最常见索引,大部分引擎都支持B树索引。full-text索引:全文索引。hash索引:只有memory引擎支持。R-Tree索引:空间索引是m
2015-05-30 22:54:07 688
原创 (1)mysql优化之sql性能问题定位
概述我们面对一个问题的时候,首先是发现问题,然后才是解决问题。在这篇文章中,主要解决如何定位问题。解决方法1.通过show status了解各种sql执行频率show status [like 'com_%'];Com_xxx表示每个xxx语句执行的次数。 具体参数,参见: http://lxneng.iteye.com/blog/451985 http://www.sandzhang.com
2015-05-29 11:19:23 1146 2
转载 PHP session垃圾回收机制
概述 由于PHP的工作机制,它并没有一个daemon线程,来定时地扫描session信息并判断其是否失效。当一个有效请求发生时,PHP会根据全局变量 session.gc_probability/session.gc_divisor(同样可以通过php.ini或者ini_set()函数来修改) 的值,来决定是否启动一个GC(Garbage Collector)。默认情况下,session.gc_p
2015-05-29 09:33:36 587
原创 一致性哈希算法
概述我们的memcache客户端(这里我看的spymemcache的源码),使用了一致性hash算法ketama进行数据存储节点的选择。与常规的hash算法思路不同,只是对我们要存储数据的key进行hash计算,分配到不同节点存储。一致性hash算法是对我们要存储数据的服务器进行hash计算,进而确认每个key的存储位置。常规hash算法的应用以及其弊端 最常规的方式莫过于hash取模的方式。
2015-05-21 15:36:59 801
原创 归并排序
概述 归并排序-顾名思义通过递归和合并的方式排序无序数列。归并排序是基于一种被称为“分治”(divide and conquer)的策略。 归并排序先分解无序数列到每一个无效数列为一个元素时候,该无序数列就是有序数列,然后一步步回退合并每一个有序数列理论http://blog.csdn.net/morewindows/article/details/6678165 http://bubkoo.
2015-05-19 15:54:44 727
原创 堆排序
概述 堆常用来实现优先队列,在这种队列中,待删除的元素为优先级最高(最低)的那个。在任何时候,任意优先元素都是可以插入到队列中去的,是计算机科学中一类特殊的数据结构的统称 堆的定义:最大(最小)堆是一棵每一个节点的键值都不小于(大于)其孩子(如果存在)的键值的树。大顶堆是一棵完全二叉树,同时也是一棵最大树。小顶堆是一棵完全完全二叉树,同时也是一棵最小树。注意:堆中任一子树亦是堆。以上讨论
2015-05-19 14:14:53 1224
原创 选择排序
概述 选择排序:比如在一个长度为N的无序数组中,在第一趟遍历N个数据,找出其中最小的数值与第一个元素交换,第二趟遍历剩下的N-1个数据,找出其中最小的数值与第二个元素交换……第N-1趟遍历剩下的2个数据,找出其中最小的数值与第N-1个元素交换,至此选择排序完成。 选择排序是根据找到无序数列中的最大或最小值插入到有序序列尾部来排序理论http://blog.csdn.net/feixiaoxing
2015-05-18 15:45:55 612
原创 冒泡排序及快速排序
概述 冒泡排序法的基本思想:(以升序为例)含有n个元素的数组原则上要进行n-1次排序。对于每一躺的排序,从第一个数开始,依次比较前一个数与后一个数的大小。如果前一个数比后一个数大,则进行交换。这样一轮过后,最大的数将会出现称为最末位的数组元素。第二轮则去掉最后一个数,对前n-1个数再按照上面的步骤找出最大数,该数将称为倒数第二的数组元素……n-1轮过后,就完成了排序。 快速排序是冒泡排序的一
2015-05-18 15:35:51 700
原创 插入排序
概述 插入排序非常类似于整扑克牌。在开始摸牌时,左手是空的,牌面朝下放在桌上。接着,一次从桌上摸起一张牌,并将它插入到左手一把牌中的正确位置上。为了找到这张牌的正确位置,要将它与手中已有的牌从右到左地进行比较。无论什么时候,左手中的牌都是排好序的。 如果输入数组已经是排好序的话,插入排序出现最佳情况,其运行时间是输入规模的一个线性函数。如果输入数组是逆序排列的,将出现最坏情况。平均情况与
2015-05-18 15:23:16 770
原创 哈希表算法
概述 Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。理论http://b
2015-05-14 15:58:52 745
原创 二叉排序树
概述 二叉排序树又称“二叉查找树”、“二叉搜索树”。二叉排序树:或者是一棵空树,或者是具有下列性质的二叉树:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;它的左、右子树也分别为二叉排序树。理论参考http://www.cnblogs.com/zhuyf87/archive/2012/11/09/2763113.h
2015-05-12 16:01:12 642
原创 折半查找算法
概述 二分查找法主要是解决在“一堆数中找出指定的数”这类问题。而想要应用二分查找法,这“一堆数”必须有一下特征:存储在数组中有序排列所以如果是用链表存储的,就无法在其上应用二分查找法了。(曽在面试被问二分查找法可以什么数据结构上使用:数组?链表?)至于是顺序递增排列还是递减排列,数组中是否存在相同的元素都不要紧。不过一般情况,我们还是希望并假设数组是递增排列,数组中的元素互不相同。理论参见:
2015-05-10 14:39:00 928 2
原创 kmp字符串模式匹配算法
概述 kmp算法我觉得有两个关键点:1.计算模式字符串的部分匹配表(这时候,自己跟自己比较)2.匹配主串时候,主串字符只遍历一遍,匹配时候,根据模式串的部分匹配表计算模式串应该移动的位置。kmp算法时间复杂度为O(m+n);下面我实现的算法代码(PHP)理论关于kmp理论部分,这篇文章写得好:http://kb.cnblogs.com/page/176818/。我就不再赘述了。计算部分匹配表fun
2015-05-08 09:08:42 821
精通css:高级web标准解决方案(第2版)
2015-01-27
构建高性能WEB站点-后端篇
2015-01-27
HTML5与CSS3权威指南
2015-01-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人