MySQL支撑百万级流量高并发的网站的部署方法是本文我们主要要介绍的内容,了解了这部分内容我们自己就能用MySQL来支撑百万级流量高并发的网站了,接下来我们就开始介绍这部分内容。
1、MySQL服务器集群
由于是小公司在资金和成本上都有所限制,而且在技术上也没有几个技术员接触过,所以这个方法自然就让大伙否决了。
这里说说我个人的理解!做集群不但添加资费的开销,而且在技术上也有很大的挑战,对于我们公司目前的情况是不大现实的。集群无非就是把一台服务器的压力转接到两台或是多台服务器上,我是这么理解的,也许我理解有误,还请大家指教。
2、分而治之
这个方法和集群差不多,不过是把统计的代码放在不同的服务器上跑,由于公司有不少配置低的服务器跑几万到几十万IP还是没有问题的,我们可以把几百万流量分成十来个几十万的量分而统计。
优点:充分的利用了现在的资源,解决了目前的问题。
缺点:这样的方法不是长久之计,迟早还是会出问题的。而且在统计数据的时候比较麻烦。
3、统计代码的修改
由于之前采用的是在插入数据之前加以判断,这个IP是否存在,来路等的处理,无形中增加了服务器的压力,所以大伙把统计代码改成来一个就插入数据库,不管三七二十一等以后在处理。
这个方法基本上把当天的数据保留下来了,可是在处理的时候由于数据量的庞大,来来回回还是把服务器跑死了,而且在插入的时候由于当时设计数据结构的时候留有的索引,也大大的消耗了不少的服务器资源。
那么把索引去掉到最后处理的时候又是老慢的,得不偿失。
4、统计方式的修改
最后这一个方法,效果非常的明显。那是什么方法呢!
这里就主要介绍这个方法:
A、保留原用的数据结构不变,并把所有的数据按一定的结构存入文件
结构:可以是xml,json,也可以是你自己想的任何有规律的数据排放。
例如:
1)221.2.70.52,http://www.baidu.com,windowxp\r\n
2)221.2.70.52,http://www.baidu.com,windowxp\r\n
写入文件:fopen,fwrite??no 这里介绍一个非常好用的技巧,也许大家都知道,但是像我这样的菜鸟大概都不知道,那就是用error_log,这不是写错误日志的吗?对就是他,非常方便。
格式:
1 error_log("内容", 3, "/date.dat");
这里我就不说他的具体用了,不明白的朋友可以查一下手册。