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

教你五招,快速提升MySQL可擴(kuò)展性

原創(chuàng)
數(shù)據(jù)庫(kù) MySQL 新聞
在可擴(kuò)展性方面,客戶的要求變得越來越多,功能列表上經(jīng)常會(huì)出現(xiàn)20條、50條甚至多達(dá)100多條要求,但總的來說,我們可以把它們縮短為五個(gè)大類,通過五條途徑來解決可擴(kuò)展性問題。

在可擴(kuò)展性方面,客戶的要求變得越來越多,功能列表上經(jīng)常會(huì)出現(xiàn)20條、50條甚至多達(dá)100多條要求,但總的來說,我們可以把它們縮短為五個(gè)大類,通過五條途徑來解決可擴(kuò)展性問題:

1. 調(diào)整查詢操作

對(duì)查詢進(jìn)行優(yōu)化能夠讓你付出最少的精力就得到最多的成果。將查詢功能完善的發(fā)揮出來,達(dá)到業(yè)務(wù)需求,不會(huì)被過多的流量和過重的載荷壓倒。這就是為什么我們經(jīng)??匆娍蛻襞龅降穆闊┰絹碓蕉?,隨著他們網(wǎng)站的訪問量越來越大,可擴(kuò)展性的挑戰(zhàn)也變得越來越嚴(yán)重,這就是問題的所在。對(duì)網(wǎng)站角落里那些不常用的頁(yè)面做查詢優(yōu)化是并不必要的,那些頁(yè)面并不會(huì)收到真實(shí)世界的流量。根據(jù)反映對(duì)網(wǎng)絡(luò)應(yīng)用做一定的調(diào)整是很普遍的做法,而且效果很好。

查詢優(yōu)化需要啟用緩慢查詢?nèi)罩静⑶也粩嘤^察。使用mk-query-digest這個(gè)Maatkit套件中的強(qiáng)大工具來分析日志,而且要確定設(shè)置了log_queries_not_using_indexes標(biāo)簽。一旦你發(fā)現(xiàn)某個(gè)查詢嚴(yán)重占用資源,那就要優(yōu)化它。使用EXPLAIN解釋機(jī)制,使用profiler,觀察索引的使用情況,創(chuàng)建失蹤的索引,理解它是怎么進(jìn)行添加和排序的。

2.使用Master-Master復(fù)制

Master-Master的active-passive復(fù)制模式,或者稱為循環(huán)復(fù)制,不僅能帶來高可用性,也能夠帶來高度的可擴(kuò)展性。這是因?yàn)槟隳軌蚣纯探o你的應(yīng)用分配到一塊只讀的從屬盤。許多網(wǎng)絡(luò)應(yīng)用都按照80/20的規(guī)律來分割,80%的活動(dòng)用來進(jìn)行讀取或SELECT,剩下的分配給INSERT和UPDATE。配置你的應(yīng)用或者進(jìn)行重新架構(gòu),把讀取需要的流量發(fā)送到從盤,這樣做是可行的,這種類型的橫向可擴(kuò)展能力可以進(jìn)一步延伸,在必要時(shí)能夠附加更多塊只讀從盤。

3. 使用存儲(chǔ)

這聽起來是很基礎(chǔ)的東西,也很直接,但是經(jīng)常會(huì)被忽視,你至少應(yīng)該確認(rèn)設(shè)置了這些:

  •  innodb_buffer_pool_size
  •  key_buffer_size (MyISAM索引緩存)
  •  query_cache_size – 使用大型SMP時(shí)需要小心
  •  thread_cache & table_cache
  •  innodb_log_file_size & innodb_log_buffer_size
  •  sort_buffer_size, join_buffer_size, read_buffer_size, read_rnd_buffer_size
  •  tmp_table_size & max_heap_table_size

4. 磁盤讀取的RAID

你的數(shù)據(jù)庫(kù)下面是什么?不知道嗎,請(qǐng)找出來。你是在用RAID 5嗎?這對(duì)于性能來說可是一個(gè)巨大的阻礙。RAID5的插入和更新操作速度很慢,而且如果你丟失了一塊硬盤,RAID 5在重建時(shí)幾乎無能為力。RAID 5實(shí)在是太慢了,那么應(yīng)該用什么代替它呢?用RAID 10做鏡像和分段,這就可以充分利用你的服務(wù)器或機(jī)箱里的所有硬盤了。即使你的內(nèi)存能夠容納下整個(gè)數(shù)據(jù)庫(kù),依然需要對(duì)硬盤進(jìn)行許多讀取操作。為什么呢?因?yàn)楸热缗判虿僮餍枰匦掳才判辛校航M和聯(lián)接等等也一樣,還有添加交易日志等等這些都是磁盤I/O操作。

5. 調(diào)整Key參數(shù)

另外,有些附加的參數(shù)也可以用來提高性能:

innodb_flush_log_at_trx_commit=2

它可以極大的提升insert和update的速度,只是在清除innodb日志緩沖區(qū)時(shí)有點(diǎn)偷懶。你可以對(duì)它多做些研究,但大多數(shù)情況下是非常值得推薦的。

innodb_file_per_table

innodb開發(fā)就像Oracle,存儲(chǔ)方面使用的是tablespace模式。顯然內(nèi)核開發(fā)者們做的并不完善,因?yàn)槭褂脝为?dú)tablespace的默認(rèn)設(shè)置就會(huì)出現(xiàn)性能瓶頸。這個(gè)參數(shù)設(shè)置可以幫助innodb為每個(gè)表創(chuàng)建tablespace和數(shù)據(jù)文件,就像MyISAM所做的一樣。

原文地址:http://sql.dzone.com/news/5-ways-boost-mysql-scalability

【編輯推薦】

  1. 教你如何利用MySQL學(xué)習(xí)MongoDB
  2. Craigslist采用MongoDB替代MySQL
  3. MySQL中的NoSQL插件
  4. SQL與NoSQL——MySQL與NoSQL的融合
責(zé)任編輯:艾婧 來源: 51CTO
相關(guān)推薦

2023-10-11 13:46:26

緩存Web應(yīng)用程序

2024-08-06 08:00:00

SQL Query數(shù)據(jù)庫(kù)

2021-09-02 09:42:11

測(cè)試軟件可擴(kuò)展性開發(fā)

2015-05-13 17:15:01

Elasticsear分布式搜索插件

2015-05-29 17:00:48

XY

2012-06-04 11:04:46

虛擬化

2022-09-05 15:17:34

區(qū)塊鏈比特幣可擴(kuò)展性

2013-12-31 09:13:18

數(shù)據(jù)中心可擴(kuò)展性技術(shù)

2010-01-20 11:09:18

虛擬服務(wù)器安全

2011-09-20 09:34:09

Windows Ser微軟虛擬化

2010-02-26 15:07:20

WCF單例服務(wù)

2024-10-10 14:01:34

2021-12-03 14:41:00

云存儲(chǔ)可擴(kuò)展性存儲(chǔ)

2021-12-09 05:36:16

云存儲(chǔ)可擴(kuò)展性數(shù)據(jù)存儲(chǔ)云存儲(chǔ)

2021-05-17 07:28:23

Spring可擴(kuò)展性項(xiàng)目

2016-10-13 14:38:51

OpenStack可擴(kuò)展性IT人員

2014-05-29 09:54:14

極進(jìn)網(wǎng)絡(luò)802.11ac

2011-06-09 09:59:16

2017-01-05 19:29:10

公共云云存儲(chǔ)微軟

2009-04-20 11:33:47

光網(wǎng)絡(luò)動(dòng)態(tài)擴(kuò)展
點(diǎn)贊
收藏

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