亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747


數(shù)據(jù)庫8種優(yōu)化方式

 

 

一:簡(jiǎn)介

MySQL性能優(yōu)化是通過優(yōu)化各個(gè)方面的,不僅僅是優(yōu)化SQL語句這一方面,而是通過各各方面的優(yōu)化,每個(gè)地方優(yōu)化一些,這樣整體性能就會(huì)有明顯的提升。

二:優(yōu)化方式

1. 優(yōu)化數(shù)據(jù)庫表結(jié)構(gòu)的設(shè)計(jì)

為什么數(shù)據(jù)庫表的設(shè)計(jì)會(huì)影響性能?

  • 字段的數(shù)據(jù)類型:不同的數(shù)據(jù)類型的存儲(chǔ)和檢索方式不同,對(duì)應(yīng)的性能也不同,所以說要合理的選用字段的數(shù)據(jù)類型。比如人的年齡用無符號(hào)的unsigned tinyint即可,沒必要用integer
  • 數(shù)據(jù)類型的長(zhǎng)度:數(shù)據(jù)庫最終要寫到磁盤上,所以字段的長(zhǎng)度也會(huì)影響著磁盤的I/O操作,如果字段的長(zhǎng)度很大,那么讀取數(shù)據(jù)也需要更多的I/O, 所以合理的字段長(zhǎng)度也能提升數(shù)據(jù)庫的性能。比如用戶的手機(jī)號(hào)11位長(zhǎng)度,沒必要用255個(gè)長(zhǎng)度。
  • 表的存儲(chǔ)引擎:常用的存儲(chǔ)引擎有MyISAM、InnoDB、Memory,不同的存儲(chǔ)引擎擁有不同的特性,所以要合理的利用每種存儲(chǔ)引擎的長(zhǎng)處和優(yōu)點(diǎn)來提供數(shù)據(jù)的性能。MyISAM不支持事務(wù),表級(jí)鎖,但是查詢速度快,InnoDB支持事務(wù),行鎖。

2. SQL優(yōu)化

MySQL性能優(yōu)化的一個(gè)很重要的手段就是對(duì)SQL語句的優(yōu)化。其中最重要的方式就是使用索引。

3. 分表

當(dāng)一個(gè)表的數(shù)據(jù)量很大的時(shí)候,查詢就變的很慢,所以減少表里的記錄的數(shù)量是優(yōu)化的一種方式,這種方式就是將一張表的數(shù)據(jù)拆分成多張表,這樣每張表的數(shù)量就減少了,這樣查詢速度就相對(duì)來說就快了一些。

大表對(duì)DDL操作有一定的影響,如創(chuàng)建索引,添加字段 修改表結(jié)構(gòu)需要長(zhǎng)時(shí)間鎖表,會(huì)造成長(zhǎng)時(shí)間的主從延遲,影響正常的數(shù)據(jù)操作

4. 大事務(wù)

大事務(wù):運(yùn)行時(shí)間比較長(zhǎng),操作的數(shù)據(jù)比較多的事務(wù) 風(fēng)險(xiǎn):鎖定太多的數(shù)據(jù),造成大量的阻塞和鎖超時(shí),回滾時(shí)所需時(shí)間比較長(zhǎng),執(zhí)行時(shí)間長(zhǎng)容易造成主從延遲

避免一次處理太多的數(shù)據(jù),移除不必要在事務(wù)中的select操作

5. 數(shù)據(jù)庫參數(shù)配置優(yōu)化(很重要)

mysql是一個(gè)高度定制化的數(shù)據(jù)庫系統(tǒng),提供了很多配置參數(shù)(如最大連接數(shù)、數(shù)據(jù)庫占用的內(nèi)存等),這些參數(shù)都有默認(rèn)值,一般默認(rèn)值都不是最佳的配置,一般都需要根據(jù)應(yīng)用程序的特性和硬件情況對(duì)mysql的配置進(jìn)行調(diào)整。

例如最大連接數(shù)默認(rèn)為100,即使SQL語句優(yōu)化的再好,硬件設(shè)備配置再高,當(dāng)請(qǐng)求超過100時(shí)都要再等待,這就是配置不合理導(dǎo)致MySQL不能發(fā)揮它的最大能力。

6. 主從復(fù)制,讀寫分離

一臺(tái)MySQL服務(wù)器同一時(shí)間點(diǎn)支持的并發(fā)數(shù)是有限的,當(dāng)大量并發(fā)(如秒殺活動(dòng)等,很多用戶都同一時(shí)刻訪問數(shù)據(jù)庫)時(shí),一臺(tái)數(shù)據(jù)庫處理不過來,所以增加MySQL服務(wù)器的數(shù)量也是一種增強(qiáng)數(shù)據(jù)庫性能的方式。

通過使用MySQL主從復(fù)制,增刪改操作走M(jìn)aster主服務(wù)器,查詢走Slaver從服務(wù)器,這樣就減少了只有一臺(tái)MySQL服務(wù)器的壓力。

7. 增加緩存層

減少數(shù)據(jù)庫連接也是一種優(yōu)化手段,有些查詢可以不用訪問數(shù)據(jù)庫,可以通過使用緩存服務(wù)器如redis、memcache、elasticsearch等增加緩存,減少數(shù)據(jù)庫的連接

8. 升級(jí)服務(wù)器硬件

當(dāng)所有優(yōu)化手段都用了,性能仍需要優(yōu)化,那么只有升級(jí)MySQL服務(wù)器端硬件了,更快的磁盤IO設(shè)備,更強(qiáng)的CPU,更大的內(nèi)存,更大的網(wǎng)卡流量(帶寬)等。

總之對(duì)MySQL性能的提升,是通過各個(gè)方面來提升的,每個(gè)方面都提升一點(diǎn),整體加起來就有明顯的提升。

分享到:
標(biāo)簽:優(yōu)化 數(shù)據(jù)庫
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定