代码改变世界

sql高并发量处理研究

2011-06-22 14:48  熬夜的虫子  阅读(2490)  评论(0编辑  收藏  举报

基于web方面的减压已经在博文http://www.cnblogs.com/dubing/archive/2011/06/22/2087025.html中介绍过 就不赘述了

本章我们着重介绍下基于数据库的解决方案

1.分库分表

按业务来算,横向分库、纵向分表。

2.数据库集群和库表散列
大型网站都有复杂的应用,这些应用必须使用数据库,那么在面对大量访问的时候,数据库的瓶颈很快就能显现出来,这时一台数据库将很快无法满足应用,于是我们需要使用数据库集群或者库表散列。

3.memcache分布式缓存

将系统中价值不大并且不需要即时更新的数据放进memcache中作为临时表来用,相当于在db层前挡了一招~ ~

4.合并请求

如果性能不佳,尽量将多个请求合并成一个请求。

5.镜像
镜像是大型网站常采用的提高性能和数据安全性的方式,镜像的技术可以解决不同网络接入商和地域带来的用户访问速度差异,比如ChinaNet和EduNet之间的差异就促使了很多网站在教育网内搭建镜像站点,数据进行定时更新或者实时更新。在镜像的细节技术方面,这里不阐述太深,有很多专业的现成的解决架构和产品可选。也有廉价的通过软件实现的思路,比如Linux上的rsync等工具。

6.读写分离

对于大数据量的表但是对于呈现读写要求不平均的话,读操作与写操作分离

7.建立高效的索引

一般都是直接用sql的索引分析来操作

8.业务合并(根据实际项目来看,不一定好用)

将耦合度比较高的业务以存储过程的方式实现,不过系统的可维护性会变差