偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

快速提高M(jìn)ySQL性能的10大“殺手锏”

數(shù)據(jù)庫 MySQL
伴隨著應(yīng)用的頻繁使用,軟件也變得越來越慢,可能是內(nèi)存的問題,可能是軟件設(shè)計(jì)的問題的,但是你有沒有想過,你天天操作的數(shù)據(jù)庫也會(huì)拖累你的應(yīng)用程序呢?

伴隨著應(yīng)用的頻繁使用,軟件也變得越來越慢,可能是內(nèi)存的問題,可能是軟件設(shè)計(jì)的問題的,但是你有沒有想過,你天天操作的數(shù)據(jù)庫也會(huì)拖累你的應(yīng)用程序呢?

下面就教你十招,搞定數(shù)據(jù)庫性能,讓你的應(yīng)用飛起來。讓小編帶你來一一見識(shí)它們的獨(dú)特之處。

殺手锏1: 設(shè)置一定時(shí)間后優(yōu)化重建數(shù)據(jù)庫

MySQL check –o –all –database 會(huì)讓ibdata1不斷的增大,因此真正的優(yōu)化只能是重建數(shù)據(jù)庫表結(jié)構(gòu)。

快速提高M(jìn)ySQL性能的 ——10大“殺手锏”

殺手锏2 :減少磁盤寫入的操作

  • 準(zhǔn)備足夠大的寫入緩存 innodb_log_file_size,這個(gè)語句和寫磁盤操作有密切的聯(lián)系
  • 避免雙寫入緩沖

殺手锏3 :提高磁盤讀寫效率

RAID0 在使用名為EC2虛擬磁盤時(shí),使用RAIDO 可以極大的提高磁盤的讀寫效率

殺手锏4 :多使用UNION INDEX 來代替UNION

我們知道使用索引能夠有效的減少數(shù)據(jù)庫中的數(shù)據(jù)量來提高查詢效率,因?yàn)樗饕梢灾苯訉ふ夷繕?biāo)對象,不需要全部檢索一遍數(shù)據(jù)庫的。

舉個(gè)例子吧:數(shù)據(jù)庫索引 就如同在圖書管理尋找你所要找的圖書,查詢系統(tǒng)之后我們能夠知道那本本在哪個(gè)區(qū)域,在那個(gè)貨架,那樣就可以快速的找到我們所想要的圖書。不需要在偌大的圖書館里一本一本的尋找,數(shù)據(jù)庫索引就是這樣相同的道理。

索引代碼:

使用索引在數(shù)據(jù)庫中查詢用戶的 賬號和密碼:

殺手锏5 :將數(shù)據(jù)庫保存在內(nèi)存磁盤中

隨著硬盤技術(shù)的提高,很多人都會(huì)將數(shù)據(jù)庫存放在固態(tài)磁盤(SSD)中,盡管當(dāng)前的固態(tài)磁盤比移動(dòng)硬盤快的多,但是它仍然不能與電腦的內(nèi)存(RAM)相比,畢竟數(shù)據(jù)從系統(tǒng)內(nèi)存中讀取要比其他一切存儲(chǔ)都要快,建議使用內(nèi)存磁盤。

隨著現(xiàn)在電腦設(shè)備技術(shù)的前進(jìn),你不在需要將所有的數(shù)據(jù)庫都存入內(nèi)存中,就可以獲取內(nèi)存中大部分性能優(yōu)勢,你只需要將經(jīng)常使用到的數(shù)據(jù)存入內(nèi)存中即可。

快速提高M(jìn)ySQL性能的 ——10大“殺手锏”

在上面的圖表中,您可以看到高達(dá)每秒2,000個(gè)I/O操作,可以看出來將頻繁使用的數(shù)據(jù)存入到內(nèi)存中很適合。

殺手锏6:充分利用日志查詢

將所有的查詢記錄,使用ORM系統(tǒng)或者生成查詢語句系統(tǒng)比較有效。

切記,請不要在生成環(huán)境使用,不然你的磁盤空間會(huì)被占滿的。

執(zhí)行1s的查詢:

殺手锏7:用NOSQL的方式來使用MySQL

使用HnadleSocket跳過MySQL的SQL解析層,使得MySQL 變?yōu)檎嬲腘LSQL.

殺手锏8:使用JOIN (連接)來替代子查詢

MySQL 4.1 之后開始支持子查詢,即可以使用select 來創(chuàng)建一個(gè)單列的查詢結(jié)果,然后將這個(gè)查詢結(jié)果作為條件在另一個(gè)查詢中使用。舉個(gè)例子:我們現(xiàn)在需要在系統(tǒng)中,將沒有任何訂單的客戶從系統(tǒng)中刪除,此時(shí)我們可以使用子查詢,先從銷售單 表中將所有有訂單的客戶ID取出,然后將ID 傳遞給主查詢。

接下里我們找出沒有訂單的客戶ID,進(jìn)一步優(yōu)化。

我們知道使用子查詢可以一次性就完成,原本需要很多步驟才能夠完成的SQL操作,同時(shí)還可以避免表鎖死,同時(shí)操作簡單。

含有join的連接來代替子連接,查詢速度會(huì)變得更快,原因是:MySQL不需要在內(nèi)存中再創(chuàng)建臨時(shí)表來完成這個(gè)主查詢和子查詢這兩個(gè)步驟,自然而然使用JOIN 連接就變得很快了。

殺手锏9:盡量使用”=”而不用”> ”或者”<”

“=” 擴(kuò)大了索引的范圍

殺手锏10:不要總是使用 “SELECT *”

在正常情況下,使用索引是可以提高查詢速度的。但是當(dāng)SQL語句使用累贅時(shí),索引將無法發(fā)揮它應(yīng)有的作用。

很顯然,雖然下面兩個(gè)查詢返回的結(jié)果都是一樣的,但是后者的效率要高很多。

下面的語句:

結(jié)論:

MySQL的性能優(yōu)化可能方法很多,但是我例舉出來的這10個(gè)方法是經(jīng)常使用到的。如果你有更好的方法,請告訴我。

責(zé)任編輯:趙寧寧 來源: 今日頭條
相關(guān)推薦

2025-06-05 09:08:43

2021-02-22 09:01:13

Redis宕機(jī)日志

2021-03-18 10:31:27

Redis宕機(jī)日志

2011-07-04 10:00:02

虛擬化

2011-06-29 10:08:24

服務(wù)器虛擬化解決方案

2010-01-15 09:43:49

Windows 7殺手

2015-06-15 14:48:21

蘋果iOS9軟實(shí)力

2010-03-23 17:06:01

2022-02-25 08:55:19

BitMapRedis面試題

2014-12-01 15:20:36

微信點(diǎn)評商家

2019-08-29 10:46:42

2022-02-10 09:04:18

RediSDS數(shù)據(jù)結(jié)構(gòu)

2019-02-23 06:32:33

網(wǎng)絡(luò)SD-WAN廣域網(wǎng)

2018-04-19 09:10:17

數(shù)據(jù)分析列式存儲(chǔ)

2020-02-19 13:39:14

操作系統(tǒng)WindowsLinux

2011-12-20 10:16:49

2015-08-11 14:38:34

2011-06-27 22:08:42

臺(tái)式機(jī)評測

2013-08-13 09:07:20

大數(shù)據(jù)

2012-12-19 13:00:36

飛魚星WLANVF16
點(diǎn)贊
收藏

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