mysql改国标码_MySQL 优化实施方案
優化的哲學
優化風險
優化設計到變更,變更就有風險
優化方向
在數據庫優化上有兩個主要方面:即安全與性能。(CAP)
安全 ---> 數據可持續性
一致
性能 ---> 數據的高性能訪問
優化框架
基礎設施:硬件,操作系統,網絡,文件系統
數據庫實例:內存,線程,IO等參數
應用層:schema設計,SQL,索引,鎖
架構層面:選型,主從
優化工具
OS (提前規劃好)
cpu:top,htop,glances,vmstat、sar top、nmon、mpstat
MEM,swap:top,htop,glances,free,ps -aux
IO:iotop,iostat,vmstat,glances, ss ,netstat,iptraf,iftop,lsof
MySQL
show processlist
show status
explain
slowlog
IS,PS,SYS
PT工具
優化過程
基礎設施
主機
真實硬件(PC Server):DELL R系列,華為,浪潮,HP,曙光,聯想
云產品:ECS(阿里),數據庫RDS(阿里),DRDS(阿里),polarDB(阿里),TDSQL(騰訊)
CPU:IO密集型(OLTP E志強),計算密集型(OLAP,I系列,P系列)
MEM:ECC校驗功能
HD:Flash--》PCI-E SSD--》SAS--》SCSI--》SATA
RAID:raid 10-->raid 5-->raid 1
存儲
FC-SAM:HDS,EMC,IBM
冷存儲
網卡
單卡單口,網卡綁定(bond)建議主備
交換機:高端,堆疊。
OS
swap調整(必調)
[root@WANGXIANG backup]# cat /proc/sys/vm/swappiness
30
[root@WANGXIANG backup]# echo 0 > /proc/sys/vm/swappiness
[root@WANGXIANG backup]# cat /proc/sys/vm/swappiness
0
# 永久生效
[root@WANGXIANG backup]# echo 'vm.swappiness=0' >> /etc/sysctl.conf
[root@WANGXIANG backup]# sysctl -p
vm.swappiness = 0
IO調度策略(必調)
[root@WANGXIANG backup]# cat /sys/block/sda/queue/scheduler
noop [deadline] cfq
deadline:最后期限,我等你一會,你要是在一定期限內沒有反應,去處理別的操作
echo deadline > /sys/block/sda/queue/scheduler
IO優化建議+排查思路
raid
no lvm,不要過度條度化,IOPS
ext4或xfs
ssd
IO調度策略
通過工具,輔助定位性能問題
top
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
CPU問題:
sys:系統相關。協調,資源管理,資源調配,資源監控,系統調用,內核程序。
MySQL:資源調配頻繁,鎖邏輯處理,會話處理
us:用戶進程,線程
MySQL:干正事時間,大事務,全表掃描,復雜查詢
wait:等待
IO wait(索引應用不合理),鎖等待
idle:空閑
定問問題方法
top -Hp mysql.pid -->
os_thread_id (setect * from performance_schema.threads where THREAD_OS_ID='12118') -->
performance_schema.thread where os_thread_id -->
MYSQL_THREAD_ID -->
select sql_text from events_statements_history where THREAD_ID='12118' -->
explain,鎖排查
數據庫實例
會話
'''
max_connections 最大連接數
1500-4000
show processlist;
select count(*) from information_schma.processlist where command='sleep';
最大連接數超限:
1.IE:409 --》 max_connections 上限 --》show processlist--》sleep?語句問題?
2.改(默認151+管理員的一個連接數)--》limits.conf-->nofile沒調整
3.sleep線程--》有規律的同時釋放。7200s,自動回收--》Keepalived(7200s超時時間),lvs(1200s)
4.show processlist; kill 85;
5.percona-toolkits -->pt-kill
wait_timeout :處理非交互會話的超時時間 建議:60 s
3306 [(none)]>select @@wait_timeout; #查看
interactive_timeout :處理交互會話的超時時間 建議:600 s
thread_cache_size :會話重用,cpu緊缺的情況下可以酌情開啟一下thread_cache_size=10
3306 [(none)]>show status like 'threads_%';
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| Threads_cached | 1 |
| Threads_connected | 1 |
| Threads_created | 2 |
| Threads_running | 1 |
+-------------------+-------+
'''
臨時表
key_buffer_size (比配置)
1.myisam表的索引緩沖區
2.臨時表的緩沖區
max_allowed_packet *****
max_allowed_packet=256
總結
以上是生活随笔為你收集整理的mysql改国标码_MySQL 优化实施方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bose车载音响怎么样(耳机怎么样呢)
- 下一篇: mysql grant 表通配符_mys