mysql效能優化學習筆記

2021-09-22 16:56:52 字數 1859 閱讀 7601

數量比頻率更好

64位使用32位的伺服器版本

32位不能使用超過4g的內容,因此選擇的時候需要注意。

myisam

innodb

** cpu **

> * 64位的cpu執行64位的系統

> * 高併發的場景,cpu數量比頻率重要

> * cpu密集型的場景和複雜sql則頻率越高越好

** 記憶體 **

** i/o **

選擇伺服器版本,而不是桌面版本。
核心相關引數(/etc/sysctl.conf)
net.ipv4.tcp_tw_reuse=1

net.ipv4.tcp_tw_recycle=1

net.core.wmem_default=87380

net.core.wmem_max=16777216

net.core.rmem_default=87380

net.core.rmem_max=16777216

探測的時間間隔(s): net.ipv4.tcp_keepalive_time=120

訊息重發時的時間間隔(s): net.ipv4.tcp_keepalive_intvl=30

tcp連線超時前最多傳送幾次: net.ipv4.tcp_keepalive_probes=3

linux系統記憶體交換區(swap):

當系統記憶體不足時會將一些虛擬記憶體寫入磁碟交換區(swap)中。

由於使用swap會對mysql效能產生災難性的影響。因此對mysql伺服器是否使用swap分割槽存在一些爭議。

如果禁用swap分割槽也會帶來一些影響:

就上述影響而言,保留swap分割槽還是必要。
增加系統資源限制(/etc/security/limit.conf)
開啟檔案數量的限制,加到/etc/security/limit.conf末尾即可:

* soft nofile 65535

* hard nofile 65535

磁碟排程策略(/sys/block/devname/queue/scheduler)
cat /sys/block/devname/queue/scheduler

noop anticipatory deadline [cfq] # 完全公平佇列,一般用於桌面系統

noop:電梯式排程,餓死讀滿足寫

deadline:截至時間策略,`資料庫型別最好的選擇`

anticipatory:和deadline一樣,只是最後一次讀操作後要等待6毫秒。合併多次寫為一次寫,適合於檔案伺服器,對資料庫伺服器表現很差。

將磁碟排程策略改為deadline

echo deadline > /sys/block/devname/queue/scheduler

ext3、ext4、xfs(效能更高),上訴都具備日誌功能,對資料安全性較好。

ext3、ext4系統掛載引數(/etcc/fstab)

/dev/sda1/ext4 noatime,nodiratime,data=writeback 1 1

效能優化學習筆記

js css鬆散耦合盡量避免直接用js操作樣式,改為控制類名 element.classname edit 解耦應用邏輯和事件處理程式 使用常量優化效能,提公升 維護性 避免全域性查詢 優化迴圈效能乙個基本的for迴圈 for let i 0 i values.length i 乙個減值操作的for...

ORACLE SQL效能優化(學習筆記)

記錄小的表應該在from的最後 多表查詢時 寫條件時from最後的哪個表應該先寫 where條件時要先寫表之間的連線 select 字句避免用 儘量減少訪問資料庫的次數 刪除全表時用truncate替代delete 不可恢復 盡量多使用 mit 使用表的別名 alias 使用exists替代in 並...

效能優化學習筆記一

1.unity可以進行跨平台操作就是因為他內含了虛擬機器 2.draw call命令 就是cpu通過圖形庫介面,命令gpu進行渲染操作,這個命令越多渲染的就越慢,所以在一般的優化裡面都會儘量減少draw call的數量 3.unity profiler是unity內建的效能分析器 1 深度效能分析 ...