mysql資料庫優化

2021-05-26 07:50:21 字數 1690 閱讀 3628

用到啥學啥,mysql資料庫優化成了這幾天的老大難問題。瘋狂的尋找mysql優化的資料,覺得有用的不少,記錄下跟大家分享,對了,這裡僅僅是mysql資料庫本身的優化,沒有寫磁碟之類的:

開始之前,介紹倆mysql的命令:

show global status;    檢視執行狀態的,顯示執行各種狀態值

show variables;          查詢mysql伺服器配置資訊的

ps:在命令裡面設定配置資訊的話,下次重啟不起作用,所以要寫到my.cnf裡面。

1.慢查詢

就是語句執行需要的時間,如果超過設定的值,則進行記錄。

show variables like '%slow%';這個可以檢視是否開啟及設定的時間,單位為秒。

show global status like '%slow%';這個是檢視統計情況

2.連線數

遇見」mysql: error 1040: too many connections」的情況,一種是訪問量確實很高,mysql伺服器抗不住,這個時候就要考慮增加從伺服器分散讀壓力,另外一種情況是mysql配置檔案中max_connections值過小:

show variables like 'max_connections';檢視最大連線數

mysql> show global status like 'max_used_connections'檢視目前出現的最大連線數

3.key_buffer_size

show variables like 'key_buffer_size';顯示目前key_buffer_size的設定值,單位是位元組。

那麼這個引數設定多少合適呢,一般是記憶體的1/4大小。如何確定乙個合適的值呢?

show global status like 'key_read%';這個是看索引請求(key_read_requests)的,還可以檢視記憶體中沒有找到直接從硬碟讀取索引(key_reads)。兩者的比值key_reads / key_read_requests越小越好,至少是1:100,1:10000算是很不錯。不過比例再大的話,也沒有很大的意義了。

mysql伺服器還提供了key_blocks_*引數:show global status like 'key_blocks_u%';

key_blocks_unused表示未使用的快取簇(blocks)數,key_blocks_used表示曾經用到的最大的blocks數,比如這台伺服器,所有的快取都用到了,要麼增加key_buffer_size,要麼就是過渡索引了,把快取佔滿了。比較理想的設定:

key_blocks_used / (key_blocks_unused + key_blocks_used) * 100% ≈ 80%

4.open_tables

show global status like 'open%tables%';檢視開啟表的情況

open_tables表示開啟表的數量,opened_tables表示開啟過的表數量,如果opened_tables數量過大,說明配置中table_cache(5.1.3之後這個值叫做table_open_cache)值可能太小。

比較適合的值:

open_tables / opened_tables * 100% >= 85%

open_tables / table_cache * 100% <= 95%

5.查詢快取(query cache) 

詳細出處:mysql資料庫優化 - 23生活

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 主鍵索引,是一種特殊的唯一索引,乙個表只能有乙個主鍵,不允許有空值,一般是在建立表...

MySQL 資料庫優化

以下的文章主要描述的是mysql資料庫簡單實用優化的具體方法的實現,中包括如何定期的表進行分析與檢查,以及如何正確對錶進行定期的優化,以下就是具體方案的描述,希望在你今後的學習中會有所幫助。1 定期分析表和檢查表 分析表的語法如下 複製 如下 analyze local no write to bi...