五個方面搞定MySQL優化

2021-10-23 22:18:29 字數 2084 閱讀 8466

後期會持續優化這篇文章

// 1.開啟慢查詢日誌:

slow_query_log=1

// 2.

show status like 'com_%';

com_select:執行 select 操作的次數,一次查詢只累加 1。

com_insert: 執行 insert 操作的次數, 對於批量插入的 insert 操作, 只累加一次。

com_update:執行 update 操作的次數。

com_delete:執行 delete 操作的次數。

// 3.讓mysql給出合適的字段長度(大致意思)

select * from tbl_name procedure analyse();

select * from tbl_name procedure analyse(16,256);

// 4.分割槽

在遵循三大正規化的基礎上適當的冗餘:這裡需要了解三大正規化的概念

使用合適的資料型別,定義合適的長度

盡量使用not null,因為null數值計算邏輯比較複雜;

慢查詢日誌;

優化where後邊的條件,避免全表掃瞄;like,>=,not in 等

explain 檢視sql執**況;

批量匯入的時候:

先禁用索引,匯入後重新建索引

批量插入,手動提交事務

避免使用select *;

這裡邊大家可以自由發揮,哈哈

選用合適的儲存引擎,innodb和myisam;

讀多寫少用myisam;

讀多寫也多用innodb;

查詢快取

query_cache_type

0或者off:關閉快取

1或者on:開啟快取(使用sql_no_cache提示的select語句除外)

2或者demand (只有顯示指定sql_cache的查詢語句才會快取)

query_cache_size:單位是m;

reset_query_cache:重置快取;

對資料表的改動會導致基於該資料表的快取失效

key_buffer_size:設定索引塊快取大小,只用於myisam

table_cache:表示資料庫使用者開啟表的最大數量;

innodb_buffer_pool_size: 儲存innodb引擎的表資料索引資料最大記憶體緩衝區大小

最大連線數。

應用層面採用快取,減少mysql查詢頻率;

主從複製:這裡需要了解主從複製原理;

讀寫分離

writedatabase:寫連線;

readdatabase:讀連線;

負載均衡搭建集群;

高可用:為單機服務提供乙個冗餘機

心跳檢測虛ip

主從複製

分割槽?不太了解

水平分割和垂直分割

以上就是我的總結,不太全,後期遇到一點補充一點吧,請各位大佬指正,加上配圖(從網上找的):

帶你快速搞定Mysql優化

目錄 select distinct from join 如left join on where group by h ing union order by limit 執行順序 from where聚h ing order limit 1 from 先做表連線 2 where 進行條件限制 3 然...

五方面搞定電腦關機問題

從五方面了解電腦無法正常關機的問題 1 系統檔案中自動關機程式的缺陷。假如我們在 開始 執行 中輸入命令 rundll32 user.exe,exitwindows 看看能否正常關機。如果在這個命令下可以正常關機,表示自動關機程式可能有某種缺陷,我們應該在相應的專案中完成檔案修補。如果修補檔案仍然不...

MySQL五個查詢優化方法

熟悉sql的人都知道,完成同乙個任務,sql可能有多種寫法,但不同寫法的查詢效能可能會有天壤之別,本文列舉出五個查詢優化的方法,當然,優化的方法還有很多。1 優化資料型別 mysql中資料型別有多種,如果你是一名dba,正在按照優化的原則對資料型別進行嚴格的檢查,但開發人員可能會選擇他們認為最簡單的...