萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> MySQL新手入門教程:mysql優化入門

MySQL新手入門教程:mysql優化入門

mysql優化對於大家來講還是非常的重要了喽,如果優化的好系統的性能會好不少了,當然如果不好肯定也會有問題了,下面我們來看一篇mysql優化入門吧。

MySQL是目前常用的RDBMS(RelationalDatabaseManagementSystem/關系數據庫管理系統),還有其他如PostgreSQL,Oracle,DB2等關系數據庫管理系統。而數據庫性能的重要性無需強調,在這裡簡單說一下,安裝MySQL之後的優化相關的話題。

計算MySQL使用內存

首先確認一下,計算MySQL進程占用內存的方法。

MySQL占用內存 = 全局緩存  + ( 線程緩存 x 最大連接數 )
全局緩存的占用內存,用以下方法計算。

max_heap_table_size參數不一定分配內存,在這裡為了安全也計算到全局緩存。

全局緩存 = key_buffer_size
                + innodb_buffer_pool_size
                + innodb_additional_mem_pool_size
                + innodb_log_buffer_size
                + max_heap_table_size
                + query_cache_size
線程緩存的占用內存,用以下方法計算。

在通常查詢中myisam_sort_buffer_size使用的可能性很小,因此沒有計算到線程緩存。並且在這裡把max_allowed_packet計算在線程緩存裡,如果接傳送的數據量不大的話,可使用net_buffer_length進行計算。

線程緩存 = sort_buffer_size
                + read_rnd_buffer_size
                + join_buffer_size
                + read_buffer_size
                + max_allowed_packet
                + thread_stack
MySQL緩存

如何使用緩存對MySQL的性能表現至關重要,MySQL有以下2種緩存。

全局緩存(Global Cache)
線程緩存(Thread Cache)
全局緩存

innodb_buffer_pool_size

緩存InnoDB的索引及數據
使用InnoDB時至關重要的參數
innodb_additional_mem_pool_size

InnoDB存儲的數據目錄信息及內部數據結構
不足時往MySQL錯誤日志文件輸出警告(Warning)
使用默認值,查看MySQL錯誤日志文件不足時再增加
innodb_log_buffer_size

InnoDB事務日志使用的緩沖區
事務結束或者一定間隔將緩存區的日志寫到文件(同步到磁盤)
盡量給其他參數多配置內存
key_buffer_size

緩存MyISAM的索引
query_cache_size

緩存查詢(SELECT)的結果
對MySQL性能有直接影響
query_cache_type參數可改變MySQL緩存行為
線程緩存

sort_buffer_size

ORDER BY,GROUP BY時使用區域
根據程序的使用情況進行配置
read_rnd_buffer_size

讀取排序後數據時使用
提高ORDER BY性能
join_buffer_size

進行表結合時,如沒有使用索引的話使用該區域
表結合推薦使用索引,所以該參數無需配置的過大
read_buffer_size

讀取全表時的使用區域
不使用索引的查詢是,不應該使用的因此該參數無需配置的過大
myisam_sort_buffer_size

MyISAM的DDL(DataDefinitionLanguage)的索引排序時使用的區域
通常查詢不會使用該區域,因此默認就可以
max_allowed_packet

數據包發送緩沖區是存儲接傳送數據包的內存區域
被net_buffer_length參數初期化,根據需要擴張到max_allowed_packe指定的大小
內存以外的參數

max_connections

可連接MySQL數據庫的最大連接數
默認是151
innodb_lof_file_size

保存InnoDB更新日志到磁盤
innodb_log_file已滿時,innodb_buffer_pool更新日志寫入磁盤
調整innodb_buffer_pool_size時,innodb_log_file_size也需調整
調整的越大Crash Recovery的時間也會跟著變長
table_open_cache

保存使用表(Table)的文件指針
至少需要「同時連接數 x Table數」
MyISAM是一個表(Table)需要2個文件指針
注意OS限制 ※cat /proc/sys/fs/file-max
thread_cache_size

通過緩存線程(Thread),降低連接時的負荷
根據實際的負荷進行配置

copyright © 萬盛學電腦網 all rights reserved