欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql優(yōu)化的重要參數 key_buffer_size table_cache

 更新時間:2016年05月28日 20:30:44   投稿:mdxy-dxy  
MySQL服務器端的參數有很多,但是對于大多數初學者來說,眾多的參數往往使得我們不知所措,但是哪些參數是需要我們調整的,哪些對服務器的性能影響最大呢

MySQL服務器端的參數有很多,但是對于大多數初學者來說,眾多的參數往往使得我們不知所措,但是哪些參數是需要我們調整的,哪些對服務器的性能影響最大呢?對于使用Myisam存儲引擎來說,主要有key_buffer_size和table_cache兩個參數。對于InnoDB引擎來說主要還是以innodb_開始的參數,也很好辨認。

查看MySQL參數,可以使用show variables和show status命令查看,前者查看服務器靜態(tài)參數,即在數據庫啟動后不會動態(tài)更改的值,比如緩沖區(qū)、字符集等。后者查看服務器的動態(tài)運行狀態(tài)信息,即數據庫運行期間動態(tài)變化的信息,比如鎖,當前連接數等。

key_buffer_size這個參數是用來設置索引塊(index blocks)緩存的大小,它被所有線程共享,嚴格說是它決定了數據庫索引處理的速度,尤其是索引讀的速度。那我們怎么才能知道key_buffer_size的設置是否合理呢,一般可以檢查狀態(tài)值Key_read_requests和Key_reads,比例key_reads / key_read_requests應該盡可能的低,比如1:100,1:1000 ,1:10000。其值可以用以i下命令查得:

mysql> show status like 'key_read%';
+-------------------+------------+
| Variable_name     | Value      |
+-------------------+------------+
| Key_read_requests | 3916880184 |
| Key_reads         | 1014261    |
+-------------------+------------+
2 rows in set (0.00 sec)

3916880184/1024/1024=?M    //單位為兆

我的key_buffer_size值為:

key_buffer_size=536870912/1024/1024=512M,

key_reads / key_read_requests=1014261: 3916880184≈1:4000,照上面來看,健康狀況還行。

table_cache指定表高速緩存的大小。每當MySQL訪問一個表時,如果在表緩沖區(qū)中還有空間,該表就被打開并放入其中,這樣可以更快地訪問表內容。通過檢查峰值時間的狀態(tài)值Open_tables和Opened_tables,可以決定是否需要增加table_cache的值。如果你發(fā)現open_tables等于table_cache,并且opened_tables在不斷增長,那么你就需要增加table_cache的值了(上述狀態(tài)值可以使用SHOW STATUS LIKE ‘Open%tables'獲得)。注意,不能盲目地把table_cache設置成很大的值。如果設置得太高,可能會造成文件描述符不足,從而造成性能不穩(wěn)定或者連接失敗。

open_tables表示當前打開的表緩存數,如果執(zhí)行flush tables操作,則此系統(tǒng)會關閉一些當前沒有使用的表緩存而使得此狀態(tài)值減??;

opend_tables表示曾經打開的表緩存數,會一直進行累加,如果執(zhí)行flush tables操作,值不會減小。

在mysql默認安裝情況下,table_cache的值在2G內存以下的機器中的值默認時256到512,如果機器有4G內存,則默認這個值是2048,但這決意味著機器內存越大,這個值應該越大,因為table_cache加大后,使得mysql對SQL響應的速度更快了,不可避免的會產生更多的死鎖(dead lock),這樣反而使得數據庫整個一套操作慢了下來,嚴重影響性能。所以平時維護中還是要根據庫的實際情況去作出判斷,找到最適合你維護的庫的table_cache值。

就是table_cache加大后碰到文件描述符不夠用的問題,在mysql的配置文件中有這么一段提示:
引用
“The number of open tables for all threads. Increasing this value increases the number of file descriptors that mysqld requires.
Therefore you have to make sure to set the amount of open files allowed to at least 4096 in the variable "open-files-limit" in” section [mysqld_safe]”
說的就是要注意這個問題,一想到這里,部分兄弟可能會用ulimit -n 作出調整,但是這個調整實際是不對的,換個終端后,這個值又會回到原始值,所以最好用sysctl或者修改/etc/sysctl.conf文件,同時還要在配置文件中把open_files_limit這個參數增大,對于4G內存服務器,相信現在購買的服務器都差不多用4G的了,那這個這個open_files_limit至少要增大到4096,如果沒有什么特殊情況,設置成8192就可以了。

innodb_buffer_pool_size 這個參數和MyISAM的key_buffer_size有相似之處,但也是有差別的。這個參數主要緩存innodb表的索引,數據,插入數據時的緩沖。為Innodb加速優(yōu)化首要參數。  該參數分配內存的原則:這個參數默認分配只有8M,可以說是非常小的一個值。如果是一個專用DB服務器,那么他可以占到內存的70%-80%。這個參數不能動態(tài)更改,所以分配需多考慮。分配過大,會使Swap占用過多,致使Mysql的查詢特慢。如果你的數據比較小,那么可分配是你的數據大小+10%左右做為這個參數的值。

相關文章

  • MySQL計算兩個日期相差的天數、月數、年數

    MySQL計算兩個日期相差的天數、月數、年數

    這篇文章主要介紹了MySQL計算兩個日期相差的天數、月數、年數,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08
  • MySQL中Distinct和Group By語句的基本使用教程

    MySQL中Distinct和Group By語句的基本使用教程

    這篇文章主要介紹了MySQL中Distinct和Group By語句的基本使用教程,這里主要是針對查詢結果去重的用法,需要的朋友可以參考下
    2015-12-12
  • mysql增量備份與恢復使用詳解

    mysql增量備份與恢復使用詳解

    對線上運行的mysql數據庫來說,周期性做數據庫備份具有重要的意義,一方面可以防止數據丟失,另一方面,備份的數據可以快速在不同的環(huán)境中使用、遷移,本文將給大家詳細介紹mysql增量備份與恢復使用,需要的朋友可以參考下
    2023-09-09
  • MySQL可重復讀級別能夠解決幻讀嗎

    MySQL可重復讀級別能夠解決幻讀嗎

    這篇文章主要給大家介紹了關于MySQL可重復讀級別能否解決幻讀的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用MySQL具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-03-03
  • mysql source 命令導入大的sql文件的方法

    mysql source 命令導入大的sql文件的方法

    本文將詳細介紹mysql source 命令導入大的sql文件的方法;需要的朋友可以參考下
    2012-11-11
  • MySQL 5.5.x my.cnf參數配置優(yōu)化詳解

    MySQL 5.5.x my.cnf參數配置優(yōu)化詳解

    今天正好看到一篇有關my.cnf優(yōu)化的總結,雖然還沒經過我自己的實踐檢驗,但從文章內容來說已經寫的很詳細了(當然,事實上下面這篇文章很多地方只是翻譯了my.cnf原始配置文件的說明,呵呵),所以特地轉載收藏一下
    2015-08-08
  • MySQL8.0.26的安裝與簡化教程(全網最全)

    MySQL8.0.26的安裝與簡化教程(全網最全)

    MySQL關是一種關系數據庫管理系統(tǒng),所使用的 SQL 語言是用于訪問數據庫的最常用的標準化語言,今天通過本文給大家分享MySQL8.0.26的安裝與簡化教程使全網最詳細的安裝教程,需要的朋友參考下吧
    2021-07-07
  • Mysql免安裝版設置密碼教程詳解

    Mysql免安裝版設置密碼教程詳解

    這篇文章主要介紹了Mysql免安裝版設置密碼教程詳解,需要的朋友可以參考下
    2017-05-05
  • mysql中grant?all?privileges?on賦給用戶遠程權限方式

    mysql中grant?all?privileges?on賦給用戶遠程權限方式

    這篇文章主要介紹了mysql中grant?all?privileges?on賦給用戶遠程權限方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Mysql優(yōu)化方法詳細介紹

    Mysql優(yōu)化方法詳細介紹

    MySQL的優(yōu)化指的是一個很大的系統(tǒng),面試的時候我之前是從sql的語句優(yōu)化方面去說的,這種優(yōu)化也有作用,不過是從邏輯方面去優(yōu)化,下面這篇文章主要給大家介紹了關于MySQL查詢緩存優(yōu)化的相關資料,需要的朋友可以參考下
    2023-02-02

最新評論