新聞中心
【獨(dú)家譯文】簡(jiǎn)易教學(xué)之快速提高擴(kuò)展性

創(chuàng)新互聯(lián)自2013年創(chuàng)立以來(lái),公司以成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司、系統(tǒng)開(kāi)發(fā)、網(wǎng)絡(luò)推廣、文化傳媒、企業(yè)宣傳、平面廣告設(shè)計(jì)等為主要業(yè)務(wù),適用行業(yè)近百種。服務(wù)企業(yè)客戶(hù)上千多家,涉及國(guó)內(nèi)多個(gè)省份客戶(hù)。擁有多年網(wǎng)站建設(shè)開(kāi)發(fā)經(jīng)驗(yàn)。為企業(yè)提供專(zhuān)業(yè)的網(wǎng)站建設(shè)、創(chuàng)意設(shè)計(jì)、宣傳推廣等服務(wù)。 通過(guò)專(zhuān)業(yè)的設(shè)計(jì)、獨(dú)特的風(fēng)格,為不同客戶(hù)提供各種風(fēng)格的特色服務(wù)。
通過(guò)幾條簡(jiǎn)單的規(guī)則,我們可以方便地提高M(jìn)ySQL服務(wù)器的擴(kuò)展性。以下是實(shí)例之一。
“改進(jìn)SQL語(yǔ)句最有效的方法是進(jìn)行精簡(jiǎn)”
精簡(jiǎn)SQL語(yǔ)句的方法林林總總,但在列舉由客戶(hù)處觀(guān)察得出的典型范例之前,請(qǐng)?jiān)试S我先對(duì)提高擴(kuò)展性的基本前提條件做出解釋。
MySQL的核心只允許在給定的時(shí)間段(例如每秒)中借由物理過(guò)程來(lái)運(yùn)行一定數(shù)量的SQL語(yǔ)句。無(wú)論你的計(jì)算機(jī)有多么強(qiáng)力,這一物理過(guò)程始終存在運(yùn)算上限。如果你能夠?qū)QL語(yǔ)句中那些不具備關(guān)鍵性或必要性的部分精簡(jiǎn)掉,那么與此同時(shí),真正重要的SQL語(yǔ)句也將自動(dòng)得到優(yōu)先處理。當(dāng)然這也將帶來(lái)其它一些連鎖反應(yīng),但只是簡(jiǎn)單數(shù)學(xué)范疇內(nèi)的小問(wèn)題??傊?strong>要運(yùn)行更多SQL指令,首先對(duì)你的指令進(jìn)行精簡(jiǎn)。
在此我們列舉一個(gè)簡(jiǎn)單的例子,通過(guò)mk-query-digest工具對(duì)TCP/IP數(shù)據(jù)包進(jìn)行分析并輸出結(jié)果。
- # Rank Query ID Response time Calls R/Call Apdx V/M Item
- # ==== ================== ============= ===== ====== ==== ===== ==========
- # 1 0xD631CB919867DB50 0.0436 47.3% 92 0.0005 1.00 0.00 SELECT TTDOD
- # 2 0x04FE01C5B31FD305 0.0258 27.9% 329 0.0001 1.00 0.00 ADMIN PING
- # 3 0x93321857BCD8E771 0.0229 24.8% 36 0.0006 1.00 0.00 SELECT TTD
其中存在很多問(wèn)題,包括SQL的一次一行(RAT)特性,不過(guò)在這里我們暫不討論ping過(guò)多的問(wèn)題。首先讓我們看看***個(gè)語(yǔ)句。
- SELECT `Date` FROM TTDOD WHERE ID = 9999;
表面上看這個(gè)查詢(xún)指令已經(jīng)夠簡(jiǎn)潔了,但讓我們?cè)倏纯戳斜怼?/p>
- mysql> select count(*) from TTDOD;
- +----------+
- | count(*) |
- +----------+
- | 0 |
- +----------+
在這種情況下,因?yàn)楫?dāng)前列表是空的,所以查詢(xún)指令將不會(huì)返回任何內(nèi)容。當(dāng)然這一點(diǎn)在未來(lái)可能會(huì)發(fā)生變化,但就目前來(lái)看這更多的是一種在簡(jiǎn)單數(shù)據(jù)管理中的異常處理狀態(tài),因?yàn)樵摿斜碇泻苌贂?huì)存在內(nèi)容。而建立一種有針對(duì)性的解決方案來(lái)通知該應(yīng)用程序,可以完全避免這類(lèi)不必要的查詢(xún)行為。
以上只是個(gè)運(yùn)行時(shí)間不足2秒的參考實(shí)例,而清除***個(gè)查詢(xún)指令也已經(jīng)使整體查詢(xún)時(shí)耗降低了20%。不管這僅僅是個(gè)典型的載入過(guò)程抑或是批處理中的并行載入過(guò)程,原理都是共通的。而且毫無(wú)疑問(wèn),在接下來(lái)的查詢(xún)指令中,我們的精簡(jiǎn)工作還大有可為。
原文地址:http://ronaldbradford.com/blog/simple-lessons-in-improving-scalability-2011-02-16/
當(dāng)前文章:精簡(jiǎn)語(yǔ)句吧,讓你的MySQL更有效
標(biāo)題網(wǎng)址:http://www.dlmjj.cn/article/djdpjhj.html


咨詢(xún)
建站咨詢(xún)
