mysql 調優方案 MySQL資料庫多種優化方案

2021-10-17 19:44:35 字數 1507 閱讀 9484

mysql資料庫多種優化方案

1、硬體優化(物理機)

a、cpu 8~16顆cpu ,2~4顆

b、mem  96g~128g,3~4個例項。 32~64g記憶體,2個例項

c、disk 數量越多越好,效能上:ssd (高併發)> sas(普通) > sata (線下)

4塊盤為例:raid0 > raid10 > raid5> raid1

d、網絡卡,多塊網絡卡bond,buffer等等。核心調優可以處理

2、軟體優化

作業系統:x64,

軟體:mysql ,編譯安裝,編譯優化。

3、my.cf引數優化(優化的幅度比較小,大部分是架構及sql語句優化)

參考:思想:監控:生產引數是一般情況下的引數

命令監控:show global status\g  然後可以看到每個引數用了多少,每個快取用了多大。通過監控慢慢調整。

調優工具:mysqlreport,還有其他的工具

3、sql語句的優化

a、索引的優化

1、抓出慢sql。讓dba盡量早的參與的開發裡面和開發共同討論。白名單機制

long_query_time= #

log-slow-queries= /vra/lib/mysql/slow-log

2、慢查詢日誌分析工具 -- mysqlsla ,

pt-query-digest.,mysqldumpslows,

3、每天晚上0:00定時分析慢查詢,發到核心開發,dba分析,及高階運維,cto郵箱。

dba分析給出優化建議--> 核心開發確認更改--->dba上線操作。

b、大的複雜的sql語句的拆分為多個小的sql語句

子查詢,join連表查詢。一張表資料太大,怎麼拆分都有問題。需要拆表,拆庫

c、資料庫是儲存資料的地方,但是不是計算資料的地方。

計算,應用類處理,都要拿到前端應用解決,禁止在資料庫上處理。

d、搜尋功能,like "%51cto%" ,一般不要使用mysql資料庫。

4、架構上的優化

a)業務拆分: 搜尋功能,like"%51cto%" ,一般不要使用mysql資料庫。

b)業務拆分:某些業務應用使用nosql持久化分出,例如:memcachedb.redis,ttserver.

例如:粉絲關注,好友關係等等。

c)資料庫前端必須要加cache,例如:memcached,使用者登入,商品查詢等等。

d)動態的資料靜態化,整個檔案靜態化,頁面片段靜態化

e)資料庫集群與讀寫分離,一主多從,通過程式或者dbproxy進行集群讀寫分離。

f)單錶查過2000萬了,拆庫拆表,不同的請求分到不同的機器上面,前面hash取模。

5、流程,制度,安全優化。

任何一次認為資料庫記錄的更新都要走乙個流程:

人的流程:開發 --> 核心開發確認 --> 運維或dba

測試的流程:開發人員內網測試 --> idc測試 --> 線上執行。

客戶端的管理,客戶端phpmyadmin。客戶端訪問控制。防患於未然

mysql 調優 Mysql調優

表設計 1 禁止使用外來鍵 2 多表中的相同列,必須保證列定義一致 3 國內表預設使用innodb,表字符集預設使用gbk,國際預設使用utf8的表 4 表必須包含gmt create和gmt modified欄位,即表必須包含記錄建立時間和修改時間的字段 5 單錶一到兩年內資料量超過500w或資料...

mysql效能調優 會話數 MySQL效能調優

mysql效能調優 提高mysql系統的效能 影響速度 替換硬體 cpu 磁碟 記憶體等 服務程式的執行引數調整 對sql查詢進行優化 併發及連線控制 連線數 連線超時 max connections 允許的最大併發連線數 connect timeout 等待建立連線的超時秒數,預設10秒,只在登入...

mysql調優書籍 mysql調優從書寫sql開始

理論知識 mysql 的執行機制 mysql 的sql關鍵字執行順序 1 mysql 的優化方案有哪些?1 mysql 資料庫常見的優化手段分為三個層面 sql 和索引優化 資料庫結構優化 系統硬體優化等 前兩個可以通過日常的書寫sql來實現,養成好的習慣可以事半功倍。2 sql 和索引優化習慣準則...