mysql資料庫全面優化與思想

2021-08-14 21:11:20 字數 1747 閱讀 8478

a、cpu 一台機器最好在8-16核,中小企業2-4核最少

b、mem 96g-128g,可以跑3-4個例項,32-64g可以跑2個例項

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

raid 4塊盤:raid0>raid10>raid5>raid1

d、網絡卡 多塊網絡卡bond,以及buffer,tcp優化

作業系統:x86_64系統

軟體:mysql 編譯優化

優化的幅度很小,大部分是架構與sql語句的優化

重要引數

#一般設定物理記憶體的30%到50%較為合理,不要50%超過

#他的作用是吧資料庫的資料快取到buffer_pool裡面

innodb_buffer_pool_size=2048m

#提交後立即重新整理log

innodb_flush_log_at_trx_commit=2

#檔案控制代碼,這個要調大

open_files_limit=65535

#mysql的快取,mysql快取不優秀,不要設定過大,利用redis等做快取就行

query_cache_size=64m

query_cache_limit=4m

query_cache_min_res_unit=2k

#臨時表,不要給特別大,會占用磁碟空間

tmp_table_size=256m

max_heap_table_size=256m

#設定binlog過期天數,自動清理,binglog最好不要手動清理,容易出問題

expire_logs_days=10

#索引的快取大小,如果是myisam引擎就要給的夠大,比如2048m

key_buffer_size=32m

#禁用dns解析,不加的話可能會出現login登入問題

skip_name_resolve

思想:

監控:上面的引數是一般情況下的引數,具體看業務

命令監控:show global status\g

調優的監控工具:mysqlreport

a、索引的優化

1、最好在專案開發期讓dba參與設計表,通過slow-log抓出慢sql

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

3、比較好的方式每天晚上0點定時分析慢查詢,發到核心開發,dba,運維,cto郵箱。

然後由dba給出建議,開發確認,上線實施,

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

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

d、搜尋功能,一般不要用mysql資料庫

1、業務拆分:搜尋功能,like 『%chao%』,一般不要用mysql資料庫

某些業務應用使用nosql持久化儲存,例如:redis等,比如粉絲關注,好友關係等等

2、資料庫前端必須要加cache,例如:redis,比如:使用者登入,商品查詢

3、動態的資料靜態化。整個檔案靜態化,頁面片段靜態化

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

5、單錶超過2000的時候,就需要拆庫拆表 ,人工拆表拆庫(登入、商品、訂單)

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

a、人的流程:開發->核心開發->運維或dba

b、測試流程:內網測試->idc測試->線上執行

c、客戶端控制,比如只能走內網,只能走vpn,

MySQL 資料庫設計與優化

mysql 作為一款輕量級資料庫被越來越多的企業使用,特別是 mysql 的 innodb 的儲存引擎和 8.0 版本發布以來更是有了較大的提公升。本文將主要介紹 mysql 的主要設計原則和從不同層面對 mysql 資料庫進行優化,在符合業務需求的前提下提公升資料庫執行效率。本 chart 內容如...

mysql資料庫優化索引 mysql資料庫索引調優

一 mysql索引 1 磁碟檔案結構 innodb引擎 frm格式檔案儲存表結構,ibd格式檔案儲存索引和資料。myisam引擎 frm格式檔案儲存表結構,myi格式檔案儲存索引,myd格式檔案儲存資料 2 mysql資料庫資料範問原理 innodb btree 1 ibd檔案中主鍵構建b tree...

mysql資料庫優先 MySQL資料庫優化

1.新增索引 mysql資料庫的四類索引 index 普通索引,資料可以重複,沒有任何限制。unique 唯一索引,要求索引列的值必須唯一,但允許有空值 如果是組合索引,那麼列值的組合必須唯一。primary key 主鍵索引,是一種特殊的唯一索引,乙個表只能有乙個主鍵,不允許有空值,一般是在建立表...