自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

數(shù)據(jù)庫 MySQL
本文我們詳細(xì)介紹了MySQL支持百萬級流量高并發(fā)的網(wǎng)站的部署方法,希望能夠?qū)δ兴鶐椭?/div>

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

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

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

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

2. 分而治之

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

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

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

3. 統(tǒng)計代碼的修改

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

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

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

4. 統(tǒng)計方式的修改

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

這里就主要介紹這個方法:

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

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

格式:

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

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

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

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

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

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

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

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

入庫前處理:

 

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

如果一個IP瀏覽多頁那么PV在這里就可以得到統(tǒng)計,并把訪問的頁面進(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 )";就這一個語句,在導(dǎo)入幾十萬數(shù)據(jù)的時候可以說是十分快速的,用法我這里也不過多介紹了,大家有不明白的可以查手冊,所以說解決數(shù)據(jù)庫的瓶頸的辦法不定要加設(shè)備,也不一定要換數(shù)據(jù)庫,只要換一個思路就能解決不少問題。

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

【編輯推薦】

  1. MySQL數(shù)據(jù)庫my.cnf配置文件注釋詳解
  2. SQL Server數(shù)據(jù)庫復(fù)制失敗的原因及解決方案
  3. SQL Server 2005數(shù)據(jù)庫游標(biāo)調(diào)用函數(shù)實例解析
  4. MySQL數(shù)據(jù)庫中EXPLAIN的使用及其注意事項詳解
  5. SQL Server數(shù)據(jù)庫用視圖來處理復(fù)雜的數(shù)據(jù)查詢關(guān)系
責(zé)任編輯:趙鵬 來源: 火魔網(wǎng)
相關(guān)推薦

2009-03-12 09:44:05

高并發(fā)開源數(shù)據(jù)庫MySQL

2023-10-25 11:20:09

快手電商混合云容器云

2019-12-31 10:33:57

Netty高性能內(nèi)存

2020-11-02 07:59:40

高并發(fā)系統(tǒng)業(yè)務(wù)

2017-01-09 16:06:19

2024-05-27 08:32:45

2018-09-11 09:25:37

高并發(fā)大流量網(wǎng)站

2019-02-27 09:46:05

數(shù)據(jù)庫架構(gòu)并發(fā)

2019-09-23 08:46:04

零拷貝 CPU內(nèi)存

2019-02-12 09:34:00

微博短視頻架構(gòu)

2025-02-10 08:20:09

2025-02-14 03:00:00

2017-11-10 09:16:07

直播彈幕系統(tǒng)

2022-08-19 06:42:11

數(shù)據(jù)庫高并系統(tǒng)

2019-01-24 09:42:55

系統(tǒng)高并發(fā)面試

2009-06-16 14:43:23

大型網(wǎng)站系統(tǒng)架構(gòu)

2017-03-24 17:17:35

限流節(jié)流系統(tǒng)

2022-08-04 20:41:42

高并發(fā)流量SQL

2025-03-31 01:22:00

2010-07-23 08:48:21

PHP架構(gòu)
點贊
收藏

51CTO技術(shù)棧公眾號