新聞中心
wordpress百萬級數(shù)據(jù)如何優(yōu)化數(shù)據(jù)庫
MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL AB 公司開發(fā),目前屬于 Oracle 旗下產(chǎn)品。MySQL 是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一,在 WEB 應(yīng)用方面,MySQL是最好的 RDBMS (Relational Database Management System,關(guān)系數(shù)據(jù)庫管理系統(tǒng)) 應(yīng)用軟件?!翱偸窃跒?zāi)難發(fā)生后,才想起容災(zāi)的重要性??偸窃诔赃^虧后,才記得曾經(jīng)有人提醒過?!?,所以此處列出一些MySQL的必要的優(yōu)化和建議。
創(chuàng)新互聯(lián)建站始終堅(jiān)持【策劃先行,效果至上】的經(jīng)營理念,通過多達(dá)十年累計(jì)超上千家客戶的網(wǎng)站建設(shè)總結(jié)了一套系統(tǒng)有效的推廣解決方案,現(xiàn)已廣泛運(yùn)用于各行各業(yè)的客戶,其中包括:成都柔性防護(hù)網(wǎng)等企業(yè),備受客戶贊美。
1. 核心類
? 不在數(shù)據(jù)庫做計(jì)算,cpu計(jì)算務(wù)必移至業(yè)務(wù)層;
? 控制單表數(shù)據(jù)量,單表記錄控制在千萬級;
? 控制列數(shù)量,字段數(shù)控制在20以內(nèi);
? 平衡范式與冗余,為提高效率可以犧牲范式設(shè)計(jì),冗余數(shù)據(jù);
? 拒絕3B(big),大sql,大事務(wù),大批量;
2. 字段類
? 用好數(shù)值類型
tinyint(1Byte)
smallint(2Byte)
mediumint(3Byte)
int(4Byte)
bigint(8Byte)
bad case:int(1)/int(11)
? 有些字符轉(zhuǎn)化為數(shù)字
例如:用int而不是char(15)存儲ip
? 優(yōu)先使用enum或set
例如:sex enum (‘F’, ‘M’)
? 避免使用NULL字段
NULL字段很難查詢優(yōu)化
NULL字段的索引需要額外空間
NULL字段的復(fù)合索引無效
bad case:
name char(32) default null
age int not null
good case:
age int not null default 0
? 不在數(shù)據(jù)庫里存圖片
3. 索引類
? 謹(jǐn)慎合理使用索引
改善查詢、減慢更新
索引一定不是越多越好(能不加就不加,要加的一定得加)
覆蓋記錄條數(shù)過多不適合建索引,例如“性別”
? 字符字段必須建前綴索引
? 不在索引做列運(yùn)算
bad case:
select id where age +1 = 10;
? innodb 主鍵合理使用自增列
主鍵建立聚簇索引
主鍵不應(yīng)該被修改
字符串不應(yīng)該做主鍵
如果不指定主鍵,innodb會使用唯一且非空值索引代替
? 不用外鍵,請由程序保證約束
4. sql類
? sql語句盡可能簡單
一條sql只能在一個(gè)cpu運(yùn)算
大語句拆小語句,減少鎖時(shí)間
一條大sql可以堵死整個(gè)庫
? 簡單的事務(wù)
事務(wù)時(shí)間盡可能短
bad case:
上傳圖片事務(wù)
? 避免使用觸發(fā)器,用戶自定義函數(shù),請由程序取而代之
? 不用select *
消耗cpu,io,內(nèi)存,帶寬
這種程序不具有擴(kuò)展性
? OR改寫為IN()
? OR改寫為UNION
PS:最新的mysql內(nèi)核已經(jīng)進(jìn)行了相關(guān)優(yōu)化
? limit高效分頁
limit越大,效率越低
select id from t limit 10000, 10;
應(yīng)該改為 =
select id from t where id 10000 limit 10;
? 使用union all替代union,union有去重開銷
? 盡量不用連接join
? 務(wù)必請使用“同類型”進(jìn)行比較,否則可能全表掃面
? 打散批量更新
? 使用新能分析工具
show profile;
mysqlsla;
mysqldumpslow;
explain;
show slow log;
show processlist;
show query_response_time(percona)
政府網(wǎng)站有什么建設(shè)方法,明天領(lǐng)導(dǎo)要我提出辦法了,各位親給我點(diǎn)思路吧,廣西的說說吧
南寧創(chuàng)聯(lián)政府網(wǎng)站建站方法:
政府信息門戶網(wǎng)站作為展示整個(gè)城市整體形象的窗口,同時(shí)也是政府聯(lián)系群眾、服務(wù)群眾的又一座橋梁。政府信息門戶網(wǎng)建設(shè)的主要目的是充分發(fā)揮互聯(lián)網(wǎng)的優(yōu)勢,更好的為民服務(wù),擴(kuò)展其對外宣傳、政務(wù)公開、咨詢服務(wù)、網(wǎng)上辦事等主要功能。
方案遵循"審慎規(guī)劃,小步快走"的建設(shè)原則,通過四個(gè)業(yè)務(wù)平臺(門戶網(wǎng)站信息發(fā)布平臺、網(wǎng)上辦事平臺、子站生成平臺、郵件服務(wù)平臺)和一個(gè)綜合管理體系的建設(shè),構(gòu)建電子化政府運(yùn)行模型,從而推動(dòng)中國電子政務(wù)的發(fā)展進(jìn)程。
實(shí)施效益
提高政府在行政、服務(wù)和管理方面的效率 利用網(wǎng)絡(luò)為公眾社會提供優(yōu)質(zhì)的多元化服務(wù) 推動(dòng)和加速整個(gè)社會的信息化發(fā)展
方案特點(diǎn)
(1) 先進(jìn)性
該系統(tǒng)在設(shè)計(jì)上采用三層結(jié)構(gòu)、Web Service技術(shù),使之在選用平臺、采用技術(shù)上具有先進(jìn)性、前瞻性、擴(kuò)充性,從而保證建成的網(wǎng)站系統(tǒng)具有良好的穩(wěn)定性、可擴(kuò)展性和安全性。
(2) 實(shí)用性
考慮到要盡量滿足業(yè)務(wù)功能需求的前提下,又要適應(yīng)各業(yè)務(wù)角色的工作特點(diǎn),該系統(tǒng)做到簡單、實(shí)用、人性化,實(shí)現(xiàn)了統(tǒng)一身份和資源管理、統(tǒng)一認(rèn)證、統(tǒng)一內(nèi)容管理、個(gè)性化界面和內(nèi)容定制。
(3) 可靠性
由于該系統(tǒng)用戶群比較復(fù)雜,既有政府部門和各系統(tǒng)機(jī)構(gòu)內(nèi)的操作層、管理層和業(yè)務(wù)層,也有比較多的社會民眾,所以建設(shè)的信息服務(wù)網(wǎng)站系統(tǒng)我們考慮了在建設(shè)平臺上保證系統(tǒng)的可靠性和安全性。系統(tǒng)設(shè)計(jì)中,應(yīng)有適量冗余及其他保護(hù)措施,平臺和應(yīng)用軟件具有良好的容錯(cuò)性、容災(zāi)性等。
(4) 開放性
在系統(tǒng)構(gòu)架、采用技術(shù)、選用平臺方面都有較好的開放性。特別是在選擇產(chǎn)品上,我們采用符合開放性要求,遵循國際標(biāo)準(zhǔn)化組織的技術(shù)標(biāo)準(zhǔn),我們的產(chǎn)品既有自己的獨(dú)特優(yōu)勢,又能與其他多家優(yōu)秀的產(chǎn)品進(jìn)行組合,共同構(gòu)成一個(gè)開放的、易擴(kuò)充的、穩(wěn)定的、統(tǒng)一軟件的系統(tǒng)。
(5) 可維護(hù)性
系統(tǒng)設(shè)計(jì)應(yīng)標(biāo)準(zhǔn)化、規(guī)范化,按照分層設(shè)計(jì),軟件構(gòu)件化實(shí)現(xiàn)。采用軟件構(gòu)件化的開發(fā)方式:一是系統(tǒng)結(jié)構(gòu)分層,業(yè)務(wù)與實(shí)現(xiàn)分離,邏輯與數(shù)據(jù)分離;二是以統(tǒng)一的服務(wù)接口規(guī)范為核心,使用開放標(biāo)準(zhǔn);三是構(gòu)件語意描述形式化;四是提煉封裝構(gòu)件規(guī)范化。
(6) 可伸縮性
考慮到政務(wù)系統(tǒng)的網(wǎng)上業(yè)務(wù)建設(shè)是一個(gè)循序漸進(jìn)、不斷擴(kuò)充的過程,系統(tǒng)采用積木式結(jié)構(gòu),整體構(gòu)架可以與原有系統(tǒng)進(jìn)行無縫連接,為今后系統(tǒng)擴(kuò)展和集成留有擴(kuò)充余量。
(7) 可移植性
選擇開放的應(yīng)用平臺,建設(shè)一套與平臺無關(guān),以統(tǒng)一的服務(wù)接口規(guī)范和與各種數(shù)據(jù)庫相連的應(yīng)用組件。
怎樣選擇云服務(wù)器的配置
選擇云服務(wù)器的配置的話就要主要參考這幾個(gè)因素:CPU,內(nèi)存,硬盤,帶寬,線路,操作系統(tǒng)和地區(qū)。下面分別說一下:
CPU就代表了云服務(wù)器的運(yùn)算能力,如果網(wǎng)站流量較大,如果網(wǎng)站流量較大,動(dòng)態(tài)頁面比較多,建議選擇2核以上CPU,而且目前的云計(jì)算廠商提供云服務(wù)器的配置還可以隨時(shí)增加,也就是當(dāng)你覺得業(yè)務(wù)量增長了,需要更強(qiáng)的運(yùn)算能力了,那么就可以直接在官網(wǎng)上進(jìn)行資源擴(kuò)充。
內(nèi)存是數(shù)據(jù)的中轉(zhuǎn)站,也是決定網(wǎng)站打開速度的重要因素,內(nèi)存越大,可用緩存越大,打開速度也就越快。根據(jù)你網(wǎng)站的規(guī)模選擇合適配置的空間,假如是一般的個(gè)人博客,或者企業(yè)展示網(wǎng)站類,就可以選小一點(diǎn)的,若是商城類,新聞?lì)惥鸵鄬Υ笠稽c(diǎn)的空間,針對于各種應(yīng)用場景,需要采取不同規(guī)格的配置,總之,最適合的才是最好的。
硬盤是存儲數(shù)據(jù)的地方,硬盤的大小要根據(jù)網(wǎng)站的數(shù)據(jù)大小決定,在選擇時(shí)應(yīng)該考慮到剩余空間。另外硬盤的I/O讀取速度直接決定文件讀取的快慢,云服務(wù)器硬盤的讀取速度比其他網(wǎng)站快很多,一般情況下都夠用。
根據(jù)網(wǎng)站的性質(zhì)選擇合適的帶寬,看你的網(wǎng)站類型、結(jié)構(gòu)和訪問量等指標(biāo)或者預(yù)計(jì),一般新的網(wǎng)站,圖片不多,也做了處理的,有2M足夠了。帶寬只要真實(shí),不用多,夠用,合適就好;或者,先選擇2M,不夠再加,這樣比較穩(wěn)妥。如果是普通的網(wǎng)站。比如文字網(wǎng)站,圖片網(wǎng)站,論壇等,占用的帶寬非常小。5000的訪問量可能也占用不到2M的帶寬。如果是視頻,下載等為主的網(wǎng)站??赡軒装賯€(gè)人同時(shí)在線都需要占用10M以上的帶寬。
操作系統(tǒng)的選擇和個(gè)人的熟悉情況和網(wǎng)站具體情況有關(guān),對哪種操作系統(tǒng)比較了解就選擇哪種操作系統(tǒng),另外windows系統(tǒng)對asp程序支持較好,不過占用內(nèi)存較多,而Linux系統(tǒng)對PHP程序比較友好,更省內(nèi)存,并且有的程序可能只支持某個(gè)操作系統(tǒng)?,F(xiàn)在比較主流的云服務(wù)器,像阿里云的ECS就提供的各個(gè)版本的操作系統(tǒng)的鏡像,還能非常便捷地獲取由云市場提供的各種應(yīng)用軟件的鏡像和工具等,甚至可以實(shí)現(xiàn)免安裝和一鍵部署。
線路的選擇對于我們來說有的時(shí)候十分糾結(jié)。如果我們是針對于本地用戶,那么我們本來可以選擇單線路的服務(wù)器,但是雙線服務(wù)器的優(yōu)勢一般在于雙IP,并且對于一個(gè)城市來說,寬帶有電信、網(wǎng)通不同的。
地區(qū),即云服務(wù)器所在地區(qū),最好選擇在你目標(biāo)用戶所在的區(qū)域內(nèi),這樣網(wǎng)站等打開速度更快。最好選擇的云服務(wù)提供商有能力在多地部署數(shù)據(jù)中心,這樣可以提供更好的容災(zāi)性還能幫助降低訪問網(wǎng)站的網(wǎng)絡(luò)時(shí)延。
最后總結(jié):云服務(wù)器的配置選擇,和網(wǎng)站或應(yīng)用的類型、訪問量、數(shù)據(jù)量大小、程序質(zhì)量等因素有關(guān),建議和網(wǎng)站或應(yīng)用的開發(fā)技術(shù)人員溝通,選擇最適合自己業(yè)務(wù)場景的配置。 如果沒有技術(shù)人員可提供建議,不妨參考云服務(wù)器廠商提供的配置方案,像1核1GB 1M的入門型適用于個(gè)人網(wǎng)站初始階段;1核 2GB 1M的基礎(chǔ)型適合流量適中的網(wǎng)站應(yīng)用,或簡單開發(fā)環(huán)境、代碼存儲庫等。另外,像阿里云還有專門針對網(wǎng)站、電商、游戲、移動(dòng)app等不同行業(yè)的解決方案供參考。
相信在未來,更多的網(wǎng)站會選擇上云,云服務(wù)器的作用和價(jià)值也會更大地顯現(xiàn)出來。
分享標(biāo)題:wordpress容災(zāi) wordpress cloudflare
瀏覽地址:http://fisionsoft.com.cn/article/ddoggch.html