qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請(qǐng)?jiān)L問(wèn) http://qaseven.github.io/

          MySQL支撐百萬(wàn)級(jí)流量高并發(fā)的網(wǎng)站部署詳解

           MySQL支撐百萬(wàn)級(jí)流量高并發(fā)的網(wǎng)站的部署方法是本文我們主要要介紹的內(nèi)容,了解了這部分內(nèi)容我們自己就能用MySQL來(lái)支撐百萬(wàn)級(jí)流量高并發(fā)的網(wǎng)站了,接下來(lái)我們就開(kāi)始介紹這部分內(nèi)容。

            1、MySQL服務(wù)器集群

            由于是小公司在資金和成本上都有所限制,而且在技術(shù)上也沒(méi)有幾個(gè)技術(shù)員接觸過(guò),所以這個(gè)方法自然就讓大伙否決了。

            這里說(shuō)說(shuō)我個(gè)人的理解!做集群不但添加資費(fèi)的開(kāi)銷,而且在技術(shù)上也有很大的挑戰(zhàn),對(duì)于我們公司目前的情況是不大現(xiàn)實(shí)的。集群無(wú)非就是把一臺(tái)服務(wù)器的壓力轉(zhuǎn)接到兩臺(tái)或是多臺(tái)服務(wù)器上,我是這么理解的,也許我理解有誤,還請(qǐng)大家指教。

            2、分而治之

            這個(gè)方法和集群差不多,不過(guò)是把統(tǒng)計(jì)的代碼放在不同的服務(wù)器上跑,由于公司有不少配置低的服務(wù)器跑幾萬(wàn)到幾十萬(wàn)IP還是沒(méi)有問(wèn)題的,我們可以把幾百萬(wàn)流量分成十來(lái)個(gè)幾十萬(wàn)的量分而統(tǒng)計(jì)。

            優(yōu)點(diǎn):充分的利用了現(xiàn)在的資源,解決了目前的問(wèn)題。

            缺點(diǎn):這樣的方法不是長(zhǎng)久之計(jì),遲早還是會(huì)出問(wèn)題的。而且在統(tǒng)計(jì)數(shù)據(jù)的時(shí)候比較麻煩。

            3、統(tǒng)計(jì)代碼的修改

            由于之前采用的是在插入數(shù)據(jù)之前加以判斷,這個(gè)IP是否存在,來(lái)路等的處理,無(wú)形中增加了服務(wù)器的壓力,所以大伙把統(tǒng)計(jì)代碼改成來(lái)一個(gè)就插入數(shù)據(jù)庫(kù),不管三七二十一等以后在處理。

            這個(gè)方法基本上把當(dāng)天的數(shù)據(jù)保留下來(lái)了,可是在處理的時(shí)候由于數(shù)據(jù)量的龐大,來(lái)來(lái)回回還是把服務(wù)器跑死了,而且在插入的時(shí)候由于當(dāng)時(shí)設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)的時(shí)候留有的索引,也大大的消耗了不少的服務(wù)器資源。

            那么把索引去掉到最后處理的時(shí)候又是老慢的,得不償失。

            4、統(tǒng)計(jì)方式的修改

            最后這一個(gè)方法,效果非常的明顯。那是什么方法呢!

            這里就主要介紹這個(gè)方法:

            A、保留原用的數(shù)據(jù)結(jié)構(gòu)不變,并把所有的數(shù)據(jù)按一定的結(jié)構(gòu)存入文件

            結(jié)構(gòu):可以是xml,json,也可以是你自己想的任何有規(guī)律的數(shù)據(jù)排放。

            例如:

            1)221.2.70.52,http://www.baidu.com,windowxp\r\n

            2)221.2.70.52,http://www.baidu.com,windowxp\r\n

            寫(xiě)入文件:fopen,fwrite??no 這里介紹一個(gè)非常好用的技巧,也許大家都知道,但是像我這樣的菜鳥(niǎo)大概都不知道,那就是用error_log,這不是寫(xiě)錯(cuò)誤日志的嗎?對(duì)就是他,非常方便。

            格式:

            1 error_log("內(nèi)容", 3, "/date.dat");

            這里我就不說(shuō)他的具體用了,不明白的朋友可以查一下手冊(cè)。

           B、數(shù)據(jù)文件的命名

            為什么這里要講文件的命名呢?如果就一味的把數(shù)據(jù)的寫(xiě)入文件不作任何的處理那么他和直接插入數(shù)據(jù)庫(kù)有多大的區(qū)別呢?那么我們所作的一切都是無(wú)用功了。

            首先是在時(shí)間的利用上:date(‘YmdH’)得到的值是如:2008121112這有什么好入,這樣一來(lái)這個(gè)數(shù)據(jù)就是一個(gè)小時(shí)一個(gè)文件必免了文件過(guò)大,而且不用去判斷自動(dòng)生成。

            IP的應(yīng)用:由于在很多數(shù)據(jù)上都是一個(gè)IP操作的,所以把相同IP的數(shù)據(jù)放在一個(gè)文件里在后面的處理就非常方便處理。請(qǐng)看后面的介紹,這里我們?nèi)P成三位為文件名字的一部分。

            C、數(shù)據(jù)的導(dǎo)入處理

            通過(guò)以上兩位的操作當(dāng)天的數(shù)據(jù)會(huì)一個(gè)不少的保留下來(lái),接下來(lái)怎么處理其實(shí)并不是很重要了。但是這里還是講講我的想法。

            入庫(kù)前處理:

            前面講到把IP三位相同的放一個(gè)文件就是為了入庫(kù)前到它們進(jìn)行處理,首先可以用最笨的方法把數(shù)據(jù)拆成N個(gè)數(shù)據(jù)。在進(jìn)行重復(fù)數(shù)據(jù)的刪除。

            如果一個(gè)IP瀏覽多頁(yè)那么PV在這里就可以得到統(tǒng)計(jì),并把訪問(wèn)的頁(yè)面進(jìn)行處理,組成新的數(shù)據(jù)。

            導(dǎo)入方法:

            這里要介紹一下數(shù)據(jù)的導(dǎo)入方法:1 $sql="LOAD DATA INFILE '".$file."' INTO TABLE `test` FIELDS TERMINATED BY ', ' LINES TERMINATED BY '\r\n'(2 3 `time` , `md5`4 5 )";就這一個(gè)語(yǔ)句,在導(dǎo)入幾十萬(wàn)數(shù)據(jù)的時(shí)候可以說(shuō)是十分快速的,用法我這里也不過(guò)多介紹了,大家有不明白的可以查手冊(cè),所以說(shuō)解決數(shù)據(jù)庫(kù)的瓶頸的辦法不定要加設(shè)備,也不一定要換數(shù)據(jù)庫(kù),只要換一個(gè)思路就能解決不少問(wèn)題。

            以上就是MySQL支撐百萬(wàn)級(jí)流量高并發(fā)的網(wǎng)站的部署方法,本文就介紹到這里了,希望本次的介紹能夠?qū)δ兴斋@!

          posted on 2011-12-21 12:01 順其自然EVO 閱讀(260) 評(píng)論(0)  編輯  收藏


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          <2011年12月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 河源市| 哈巴河县| 黄山市| 安仁县| 临猗县| 蕲春县| 滁州市| 华坪县| 多伦县| 静宁县| 抚松县| 黑龙江省| 民乐县| 穆棱市| 石台县| 鄱阳县| 厦门市| 怀远县| 静乐县| 九龙城区| 门头沟区| 女性| 美姑县| 蓝山县| 公主岭市| 霍城县| 桑植县| 改则县| 延川县| 资兴市| 孝感市| 安泽县| 遂溪县| 安龙县| 佳木斯市| 夏邑县| 洛川县| 拜城县| 永嘉县| 虹口区| 凤阳县|