码迷,mamicode.com
首页 > 其他好文 > 详细

一些心得(持续更新)

时间:2014-11-07 18:52:27      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:io   使用   sp   数据   div   问题   bs   ad   工作   

数据库查询:

数据库查询对并发处理和事务处理都有很大影响;

查询性能越好,随并发量上升导致的性能下降的影响越小;

查询性能越好,受其他事务排他锁的影响越小;

总之,要解决超时、死锁等问题,优化查询性能,缩短事务时间(最好不用事务)是最根本办法

 

(非原创,引用自网络)用两个例子看清楚分布式和集群的区别:

例子1:

如果一个任务由10个子任务组成,每个子任务单独执行需1小时,则在一台服务器上执行改任务需10小时。   采用分布式方案,提供10台服务器,每台服务器只负责处理一个子任务,不考虑子任务间的依赖关系,执行完这个任务只需一个小时。(这种工作模式的一个典型代表就是Hadoop的Map/Reduce分布式计算模型)    而采用集群方案,同样提供10台服务器,每台服务器都能独立处理这个任务。假设有10个任务同时到达,10个服务器将同时工作,10小后,10个任务同时完成,这样,整身来看,还是1小时内完成一个任务!

例子2:

一堆机器堆在这儿,具备一定的相同的功能属性,就可以叫集群   分布式的话,应该是具备分布式特性的一类系统

集群的作用:负载均衡,错误恢复

集群式资源整合,分布式是计算能力整合

集群=聚合,分布式=组合

 

减少线程切换:

几乎所有IO操作(包括磁盘和网络)都产生线程切换
Mutex, AutoResetEvent, Sleep等方法会产生线程切换
在应用服务化的时代,网络服务接口常常被当成本地方法使用,当这样的接口被放入循环,递归中时,线程切换的时间消耗往往会超过要执行的逻辑本身+网络传输的开销
如何避免:
所有的IO操作用异步模式(这个比较难)
对会产生IO的接口使用特别小心
封装IO接口,适当引入缓存
设计时提供批量和单个接口,减少IO次数
……
 
降低嵌套循环:
用hash表,字典,分组等手段优化嵌套,把多层循环变成多次循环(复杂度由高次方变成一次方)
 
防暴力破解:
MD5(x+MD5(y));y.length>=8
 

一些心得(持续更新)

标签:io   使用   sp   数据   div   问题   bs   ad   工作   

原文地址:http://www.cnblogs.com/jefferycao/p/4081755.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!