日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

mysql 双缓冲_Mysql一些好的优化建议(二)

發(fā)布時(shí)間:2024/9/18 数据库 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 双缓冲_Mysql一些好的优化建议(二) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

MySQL是一個(gè)強(qiáng)大的開(kāi)源數(shù)據(jù)庫(kù)。隨著MySQL上的應(yīng)用越來(lái)越多,MySQL逐漸遇到了瓶頸。這里提供 101 條優(yōu)化 MySQL 的建議。有些技巧適合特定的安裝環(huán)境,但是思路是相通的。我已經(jīng)將它們分成了幾類以幫助你理解。

MySQL監(jiān)控

MySQL服務(wù)器硬件和OS(操作系統(tǒng))調(diào)優(yōu):

1、有足夠的物理內(nèi)存,能將整個(gè)InnoDB文件加載到內(nèi)存里 —— 如果訪問(wèn)的文件在內(nèi)存里,而不是在磁盤上,InnoDB會(huì)快很多。

2、全力避免 Swap 操作 — 交換(swapping)是從磁盤讀取數(shù)據(jù),所以會(huì)很慢。

3、使用電池供電的RAM(Battery-Backed RAM)。

4、使用一個(gè)高級(jí)磁盤陣列 — 最好是 RAID10 或者更高。

5、避免使用RAID5 — 和校驗(yàn)需要確保完整性,開(kāi)銷很高。

6、將你的操作系統(tǒng)和數(shù)據(jù)分開(kāi),不僅僅是邏輯上要分開(kāi),物理上也要分開(kāi) — 操作系統(tǒng)的讀寫開(kāi)銷會(huì)影響數(shù)據(jù)庫(kù)的性能。

7、將臨時(shí)文件和復(fù)制日志與數(shù)據(jù)文件分開(kāi) — 后臺(tái)的寫操作影響數(shù)據(jù)庫(kù)從磁盤文件的讀寫操作。

8、更多的磁盤空間等于更高的速度。

9、磁盤速度越快越好。

10、SAS優(yōu)于SATA。

11、小磁盤的速度比大磁盤的更快,尤其是在 RAID 中。

12、使用電池供電的緩存 RAID(Battery-Backed Cache RAID)控制器。

13、避免使用軟磁盤陣列。

14. 考慮使用固態(tài)IO卡(不是磁盤)來(lái)作為數(shù)據(jù)分區(qū) — 幾乎對(duì)所有量級(jí)數(shù)據(jù),這種卡能夠支持 2 GBps 的寫操作。

15、在 Linux 系統(tǒng)上,設(shè)置 swappiness 的值為0 — 沒(méi)有理由在數(shù)據(jù)庫(kù)服務(wù)器上緩存文件,這種方式在Web服務(wù)器或桌面應(yīng)用中用的更多。

16、盡可能使用 noatime 和 nodirtime 來(lái)掛載文件系統(tǒng) — 沒(méi)有必要為每次訪問(wèn)來(lái)更新文件的修改時(shí)間。

17、使用 XFS 文件系統(tǒng) — 一個(gè)比ext3更快的、更小的文件系統(tǒng),擁有更多的日志選項(xiàng),同時(shí),MySQL在ext3上存在雙緩沖區(qū)的問(wèn)題。

18、優(yōu)化你的 XFS 文件系統(tǒng)日志和緩沖區(qū)參數(shù) – -為了獲取最大的性能基準(zhǔn)。

19、在Linux系統(tǒng)中,使用 NOOP 或 DEADLINE IO 調(diào)度器 — CFQ 和 ANTICIPATORY 調(diào)度器已經(jīng)被證明比 NOOP 和 DEADLINE 慢。

20、使用 64 位操作系統(tǒng) — 有更多的內(nèi)存能用于尋址和?MySQL?使用。

21、將不用的包和后臺(tái)程序從服務(wù)器上刪除 — 減少資源占用。

22、將使用 MySQL 的 host 和 MySQL自身的 host 都配置在一個(gè) host 文件中 — 這樣沒(méi)有 DNS 查找。

23、永遠(yuǎn)不要強(qiáng)制殺死一個(gè)MySQL進(jìn)程 — 你將損壞數(shù)據(jù)庫(kù),并運(yùn)行備份。

24、讓你的服務(wù)器只服務(wù)于MySQL — 后臺(tái)處理程序和其他服務(wù)會(huì)占用數(shù)據(jù)庫(kù)的 CPU 時(shí)間。

MySQL 配置:

25、使用 innodb_flush_method=O_DIRECT 來(lái)避免寫的時(shí)候出現(xiàn)雙緩沖區(qū)。

26、避免使用 O_DIRECT 和 EXT3 文件系統(tǒng) — 這會(huì)把所有寫入的東西序列化。

27、分配足夠 innodb_buffer_pool_size ,來(lái)將整個(gè)InnoDB 文件加載到內(nèi)存 — 減少?gòu)拇疟P上讀。

28、不要讓 innodb_log_file_size 太大,這樣能夠更快,也有更多的磁盤空間 — 經(jīng)常刷新有利降低發(fā)生故障時(shí)的恢復(fù)時(shí)間。

29、不要同時(shí)使用 innodb_thread_concurrency 和 thread_concurrency 變量 — 這兩個(gè)值不能兼容。

30、為 max_connections 指定一個(gè)小的值 — 太多的連接將耗盡你的RAM,導(dǎo)致整個(gè)MySQL服務(wù)器被鎖定。

31、保持 thread_cache 在一個(gè)相對(duì)較高的數(shù)值,大約是 16 — 防止打開(kāi)連接時(shí)候速度下降。

32、使用 skip-name-resolve — 移除 DNS 查找。

33、如果你的查詢重復(fù)率比較高,并且你的數(shù)據(jù)不是經(jīng)常改變,請(qǐng)使用查詢緩存 — 但是,在經(jīng)常改變的數(shù)據(jù)上使用查詢緩存會(huì)對(duì)性能有負(fù)面影響。

34、增加 temp_table_size — 防止磁盤寫。

35、增加 max_heap_table_size — 防止磁盤寫。

36、不要將 sort_buffer_size 的值設(shè)置的太高 — 可能導(dǎo)致連接很快耗盡所有內(nèi)存。

37、監(jiān)控 key_read_requests 和 key_reads,以便確定 key_buffer 的值 — key 的讀需求應(yīng)該比 key_reads 的值更高,否則使用 key_buffer 就沒(méi)有效率了。

38、設(shè)置 innodb_flush_log_at_trx_commit = 0 可以提高性能,但是保持默認(rèn)值(1)的話,能保證數(shù)據(jù)的完整性,也能保證復(fù)制不會(huì)滯后。

39、有一個(gè)測(cè)試環(huán)境,便于測(cè)試你的配置,可以經(jīng)常重啟,不會(huì)影響生產(chǎn)環(huán)境。

MySQL Schema 優(yōu)化:

40、保證你的數(shù)據(jù)庫(kù)的整潔性。

41、歸檔老數(shù)據(jù) — 刪除查詢中檢索或返回的多余的行

42、在數(shù)據(jù)上加上索引。

43、不要過(guò)度使用索引,評(píng)估你的查詢。

44、壓縮 text 和 blob 數(shù)據(jù)類型 — 為了節(jié)省空間,減少?gòu)拇疟P讀數(shù)據(jù)。

45、UTF 8 和 UTF16 比 latin1 慢。

46、有節(jié)制的使用觸發(fā)器。

47、保持?jǐn)?shù)據(jù)最小量的冗余 — 不要復(fù)制沒(méi)必要的數(shù)據(jù).

48、使用鏈接表,而不是擴(kuò)展行。

49、注意你的數(shù)據(jù)類型,盡可能的使用最小的。

50、如果其他數(shù)據(jù)需要經(jīng)常需要查詢,而 blob/text 不需要,則將 blob/text 數(shù)據(jù)域其他數(shù)據(jù)分離。

51、經(jīng)常檢查和優(yōu)化表。

52、經(jīng)常做重寫 InnoDB 表的優(yōu)化。

53、有時(shí),增加列時(shí),先刪除索引,之后在加上索引會(huì)更快。

54、為不同的需求選擇不同的存儲(chǔ)引擎。

55、日志表或?qū)徲?jì)表使用ARCHIVE存儲(chǔ)引擎 — 寫的效率更高。

56、將 session 數(shù)據(jù)存儲(chǔ)在 memcache 中,而不是 MySQL 中 — memcache 可以設(shè)置自動(dòng)過(guò)期,防止MySQL對(duì)臨時(shí)數(shù)據(jù)高成本的讀寫操作。

57、如果字符串的長(zhǎng)度是可變的,則使用VARCHAR代替CHAR — 節(jié)約空間,因?yàn)镃HAR是固定長(zhǎng)度,而VARCHAR不是(utf8 不受這個(gè)影響)。

58、逐步對(duì) schema 做修改 — 一個(gè)小的變化將產(chǎn)生的巨大的影響。

59、在開(kāi)發(fā)環(huán)境測(cè)試所有 schema 變動(dòng),而不是在生產(chǎn)環(huán)境的鏡像上去做。

60、不要隨意改變你的配置文件,這可能產(chǎn)生非常大的影響。

61、有時(shí)候,少量的配置會(huì)更好。

62、質(zhì)疑使用通用的MySQL配置文件。

查詢優(yōu)化:

63、使用慢查詢?nèi)罩?#xff0c;找出執(zhí)行慢的查詢。

64、使用 EXPLAIN 來(lái)決定查詢功能是否合適。

65、經(jīng)常測(cè)試你的查詢,看是否需要做性能優(yōu)化 — 性能可能會(huì)隨著時(shí)間的變化而變化。

66、避免在整個(gè)表上使用count(*) ,它可能會(huì)將整個(gè)表鎖住。

67、保持查詢一致,這樣后續(xù)類似的查詢就能使用查詢緩存了。

68、如果合適,用 GROUP BY 代替 DISTINCT。

69、在 WHERE、GROUP BY 和 ORDER BY 的列上加上索引。

70、保證索引簡(jiǎn)單,不要在同一列上加多個(gè)索引。

71、有時(shí),MySQL 會(huì)選擇錯(cuò)誤的索引,這種情況使用 USE INDEX。

72、使用 SQL_MODE=STRICT 來(lái)檢查問(wèn)題。

73、索引字段少于5個(gè)時(shí),UNION 操作用 LIMIT,而不是 OR。

74、使用 INSERT ON DUPLICATE KEY 或 INSERT IGNORE 來(lái)代替 UPDATE,避免 UPDATE 前需要先 SELECT。

75、使用索引字段和 ORDER BY 來(lái)代替 MAX。

76、避免使用 ORDER BY RAND()。

77、LIMIT M,N 在特定場(chǎng)景下會(huì)降低查詢效率,有節(jié)制使用。

78、使用 UNION 來(lái)代替 WHERE 子句中的子查詢。

79、對(duì) UPDATE 來(lái)說(shuō),使用 SHARE MODE 來(lái)防止排他鎖。

80、重啟 MySQL 時(shí),記得預(yù)熱數(shù)據(jù)庫(kù),確保將數(shù)據(jù)加載到內(nèi)存,提高查詢效率。

81、使用 DROP TABLE ,然后再 CREATE TABLE ,而不是 DELETE FROM ,以刪除表中所有數(shù)據(jù)。

82、最小化你要查詢的數(shù)據(jù),只獲取你需要的數(shù)據(jù),通常來(lái)說(shuō)不要使用 *。

83、考慮持久連接,而不是多次建立連接,已減少資源的消耗。

84、基準(zhǔn)查詢,包括服務(wù)器的負(fù)載,有時(shí)一個(gè)簡(jiǎn)單的查詢會(huì)影響其他的查詢。

85、當(dāng)服務(wù)器的負(fù)載增加時(shí),使用SHOW PROCESSLIST來(lái)查看慢的/有問(wèn)題的查詢。

86、在存有生產(chǎn)環(huán)境數(shù)據(jù)副本的開(kāi)發(fā)環(huán)境中,測(cè)試所有可疑的查詢。

MySQL備份過(guò)程:

87、在二級(jí)復(fù)制服務(wù)器上進(jìn)行備份。

88、備份過(guò)程中停止數(shù)據(jù)的復(fù)制,以防止出現(xiàn)數(shù)據(jù)依賴和外鍵約束的不一致。

89、徹底停止MySQL之后,再?gòu)臄?shù)據(jù)文件進(jìn)行備份。

90、如果使用MySQL dump進(jìn)行備份,請(qǐng)同時(shí)備份二進(jìn)制日志 — 確保復(fù)制過(guò)程不被中斷。

91、不要信任 LVM 快照的備份 — 可能會(huì)創(chuàng)建不一致的數(shù)據(jù),將來(lái)會(huì)因此產(chǎn)生問(wèn)題。

92、為每個(gè)表做一個(gè)備份,這樣更容易實(shí)現(xiàn)單表的恢復(fù) — 如果數(shù)據(jù)與其他表是相互獨(dú)立的。

93、使用 mysqldump 時(shí),指定 -opt 參數(shù)。

94、備份前檢測(cè)和優(yōu)化表。

95、臨時(shí)禁用外鍵約束,來(lái)提高導(dǎo)入的速度。

96、臨時(shí)禁用唯一性檢查,來(lái)提高導(dǎo)入的速度。

97、每次備份完后,計(jì)算數(shù)據(jù)庫(kù)/表數(shù)據(jù)和索引的大小,監(jiān)控其增長(zhǎng)。

98、使用定時(shí)任務(wù)(cron)腳本,來(lái)監(jiān)控從庫(kù)復(fù)制的錯(cuò)誤和延遲。

99、定期備份數(shù)據(jù)。

100、定期測(cè)試備份的數(shù)據(jù)。

貼上原貼地址?http://blog.jobbole.com/87989/

總結(jié)

以上是生活随笔為你收集整理的mysql 双缓冲_Mysql一些好的优化建议(二)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美xxx在线观看 | 91av麻豆 | 一区二区三区在线视频免费观看 | 毛片久久久久久 | 久久精品99国产 | 中国肥胖女人真人毛片 | 国产在线中文字幕 | 亚洲一区 中文字幕 | 精品免费一区二区 | 亚洲无吗在线观看 | 免费的a级片 | 国产主播一区二区 | 超碰精品| 日韩中文字幕一区二区三区 | 日韩在线播放视频 | 日本不卡视频一区二区 | 日韩r级电影在线观看 | 国产精品一区在线 | 人人射人人射 | 精品视频在线一区 | 青草视频在线观看免费 | 欧洲美女与动交ccoo | 九九热视频在线观看 | 朝桐光在线视频 | 麻豆午夜 | 国产在线超碰 | 爱情岛亚洲论坛入口 | av一卡 | 中国性老太hd大全69 | 最近中文字幕在线视频 | 91欧美一区| 日韩av中文在线观看 | 538国产精品一区二区免费视频 | 国产又粗又猛又爽69xx | 精品国产午夜福利在线观看 | 男人日女人免费视频 | 日韩无套无码精品 | 超碰在线观看av | 老色批影视 | 女性生殖扒开酷刑vk | 丰满人妻熟妇乱偷人无码 | 成年人免费在线看 | 美女裸体跪姿扒开屁股无内裤 | 超碰免费在 | 美女露出粉嫩尿囗让男人桶 | 91深夜福利 | 精品在线看 | 免费观看一区二区三区毛片 | 日韩va在线 | 黄色美女毛片 | 一本色道久久88加勒比—综合 | 亚洲图片综合区 | 黑人中文字幕一区二区三区 | 狠狠搞狠狠干 | 粉嫩av一区二区三区免费观看 | 亚洲成人久久久 | 国产午夜在线 | 亚洲小视频网站 | 天堂中文在线资源 | 九九爱视频| 成人在线免费播放 | 1区2区3区在线观看 久久久久久久久久久影院 成人网址在线观看 | 中文字幕观看av | 久久538| 亚洲国产精品电影 | 免费成人高清在线视频 | 熟妇人妻无乱码中文字幕真矢织江 | 96精品视频 | 中文字幕二区三区 | 天天添天天操 | 老地方在线观看免费动漫 | 日韩美女视频在线观看 | 成人一区在线观看 | 97在线看| 久热精品免费视频 | wwwjizzzcom | 日本少妇一区二区 | 欧美丰满一区二区免费视频 | 亚洲激情成人 | 国产黄色录像片 | 黄色资源网站 | 国产在线视视频有精品 | 网站黄在线观看 | 国产好片无限资源 | 黑料视频在线 | 任你躁av一区二区三区 | 国产又粗又猛又爽又黄av | 亚洲av永久无码精品一百度影院 | 国产思思99re99在线观看 | 国产精品永久免费 | 天堂成人在线视频 | 中文字幕人妻一区二区三区 | 亚洲精品网站在线 | 97影视 | 爱爱视频在线看 | 亚洲免费视频一区二区三区 | 亚洲欧洲一区二区 | 深夜毛片 | 亚洲区久久 |