上一页 1 2 3 4 5 6 ··· 8 下一页
摘要: 在数据库中,UNION和UNION ALL关键字都是将两个结果集合并为一个,但这两者从使用和效率上来说都有所不同。MySQL中的UNIONUNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。实际大部分应用中是不会产生重复的记录,最常见的... 阅读全文
posted @ 2014-04-23 09:31 visionwang 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 在数据库的处理过程中常会遇到一些并发的情况,因而会导致这样或那样的问题。而数据库的事务隔离级别就是用来应对这些问题,针对不同的场景使数据的并发操作和读取满足一定规则。通常我们会遇到以下几种常见问题数据丢失(Lost Updates)数据丢失发生在两个进程同时操作同一条数据时,比如Process A 更新内容为“icecream”,Process B更新内容为“milk”,再次查询的时候,Process A更新的数据就可能丢失了。因为两个进程操作的是同一条数据。脏读(Dirty Reads)脏读发生在读取数据时,读取的数据不是正确的。比如Process A做了一次update操作,更新了价格为1 阅读全文
posted @ 2014-03-04 09:14 visionwang 阅读(480) 评论(0) 推荐(0) 编辑
摘要: 按请求来源渠道拆分不同的请求来源,请求量必然不太一致。不同来源的请求被分发到各自的一组机器上,起到相互隔离的作用,服务出现问题时,只影响特定来源请求;某个来源渠道请求量上涨或者有问题时,所影响的范围也被限制。按不同地区来拆分思路同按请求来源渠道拆分。按不同号段来拆分微信的部署是按每千万的用户划分到一个set来承载。每个set是一套完整的服务(包括接入服务、逻辑服务、存储等),大概2、3百台机器(2012年的数据),不仅利于「防火隔离」,更利于扩容。按不同运营商来拆分按照不同的运营商来拆分部署时,不仅起到「防火隔离」的作用,也减少由于跨网络请求导致速度慢的情况,在天朝,都知道各运营商互联互通始终 阅读全文
posted @ 2014-02-21 09:04 visionwang 阅读(626) 评论(0) 推荐(0) 编辑
摘要: 在容量足够的情况下,当然是越大越好,但这样会造成浪费.不考虑这种情况.我们一般的情况是:memcache集群一开始创建会根据存储的数据量与访问量进行容量大小的估算.再算一个20%的冗余.在网站快速增长的情况下,如果容量不够会带来性能的影响.如何提前感知memcache容量不足的情况,又如何确定要再扩容多少?另外一开始如果估算得太多了,又如何来缩减这个容量.思考:从stats出发,可以通过查看mc的状态,像命中率, evictions 的多少决定了mc的容量是否足够,但是不同的mc的使用,淘汰的策略可能不一样,导致这个方法好像不够有通用性.最关键的问题,如果知道这个集群的容量不够了,又如何来判断 阅读全文
posted @ 2014-01-15 18:04 visionwang 阅读(1887) 评论(0) 推荐(0) 编辑
摘要: 使用.NET的BlockingCollection来包装一个ConcurrentQueue来实现golang的channel。代码如下:public class Channel{ private BlockingCollection _buffer; public Channel() : this(1) { } public Channel(int size) { _buffer = new BlockingCollection(new ConcurrentQueue(), size); } public bool Send(T t) {... 阅读全文
posted @ 2013-12-03 21:18 visionwang 阅读(2299) 评论(0) 推荐(0) 编辑
摘要: 1.你无法断定程序会在什么地方耗费运行时间。瓶颈经常出现在想不到的地方,所以别急于胡乱找个地方改代码,除非你已经证实那儿就是瓶颈所在。2.估量。在你没对代码进行估量,特别是没找到最耗时的那部分之前,别去优化速度。3.花哨的算法在n很小时通常很慢,而n通常很小。花哨算法的常数复杂度很大。除非你确定n总是很大,否则不要用花哨算法(即使n很大,也优先考虑原则2)。比如,解决常见问题时,最简单的树——二叉树(binarytree),总是比那些复杂的树(AVL树,伸展树(splaytree)和红黑树、B-树(B-tree),多叉树(trie))来的高校。4.花哨的算法比简单算法更容易出bug、更难实现。 阅读全文
posted @ 2013-11-30 14:00 visionwang 阅读(248) 评论(0) 推荐(0) 编辑
摘要: http://technet.microsoft.com/zh-cn/library/dd197552(v=ws.10).aspx 阅读全文
posted @ 2013-11-22 13:16 visionwang 阅读(373) 评论(0) 推荐(0) 编辑
摘要: 来自《CLR via C# 3rd Edition》总结只管理内存,非托管资源,如文件句柄,GDI资源,数据库连接等还需要用户去管理循环引用,网状结构等的实现会变得简单。GC的标志也压缩算法能有效的检测这些关系,并将不再被引用的网状结构整体删除。GC通过从程序的根对象开始遍历来检测一个对象是... 阅读全文
posted @ 2013-10-15 21:54 visionwang 阅读(1085) 评论(0) 推荐(0) 编辑
摘要: 1.索引作用 在索引列上,除了上面提到的有序查找之外,数据库利用各种各样的快速定位技术,能够大大提高查询效率。特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万倍。 例如,有3个未索引的表t1、t2、t3,分别只包含列c1、c2、c3,每个表分别含有1000行数据组成,指为1~1000的数值,查找对应值相等行的查询如下所示。SELECT c1,c2,c3 FROM t1,t2,t3 WHERE c1=c2 AND c1=c3 此查询结果应该为1000行,每行包含3个相等的值。在无索引的情况下处理此查询,必须寻找3个表所有的组合,以便得出与WHERE子句相配的那些行。而 阅读全文
posted @ 2013-10-15 15:28 visionwang 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 在LinqToObject中,利用OrderBy/OrderByDescending, ThenBy/ThenByDescending这4个方法排序时,发现不能正确的按拼音排序,所以在排序时增加编码支持 Encoding enc = Encoding.GetEncoding("gb2312");dict.OrderBy(p => BitConverter.ToString(enc.GetBytes(p.Key)));若是LinqToSql的话,就需要看下数据库机器得sql是否为中文版的?若数据库是英文版,就有可能出现不能正确的按拼音排序的情况,这时候,可以通过修改数据 阅读全文
posted @ 2013-10-14 16:37 visionwang 阅读(733) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 8 下一页