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

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

 更新時(shí)間:2016年05月28日 20:30:44   投稿:mdxy-dxy  
MySQL服務(wù)器端的參數(shù)有很多,但是對(duì)于大多數(shù)初學(xué)者來(lái)說(shuō),眾多的參數(shù)往往使得我們不知所措,但是哪些參數(shù)是需要我們調(diào)整的,哪些對(duì)服務(wù)器的性能影響最大呢

MySQL服務(wù)器端的參數(shù)有很多,但是對(duì)于大多數(shù)初學(xué)者來(lái)說(shuō),眾多的參數(shù)往往使得我們不知所措,但是哪些參數(shù)是需要我們調(diào)整的,哪些對(duì)服務(wù)器的性能影響最大呢?對(duì)于使用Myisam存儲(chǔ)引擎來(lái)說(shuō),主要有key_buffer_size和table_cache兩個(gè)參數(shù)。對(duì)于InnoDB引擎來(lái)說(shuō)主要還是以innodb_開(kāi)始的參數(shù),也很好辨認(rèn)。

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

key_buffer_size這個(gè)參數(shù)是用來(lái)設(shè)置索引塊(index blocks)緩存的大小,它被所有線程共享,嚴(yán)格說(shuō)是它決定了數(shù)據(jù)庫(kù)索引處理的速度,尤其是索引讀的速度。那我們?cè)趺床拍苤纊ey_buffer_size的設(shè)置是否合理呢,一般可以檢查狀態(tài)值Key_read_requests和Key_reads,比例key_reads / key_read_requests應(yīng)該盡可能的低,比如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,照上面來(lái)看,健康狀況還行。

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

open_tables表示當(dāng)前打開(kāi)的表緩存數(shù),如果執(zhí)行flush tables操作,則此系統(tǒng)會(huì)關(guān)閉一些當(dāng)前沒(méi)有使用的表緩存而使得此狀態(tài)值減小;

opend_tables表示曾經(jīng)打開(kāi)的表緩存數(shù),會(huì)一直進(jìn)行累加,如果執(zhí)行flush tables操作,值不會(huì)減小。

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

就是table_cache加大后碰到文件描述符不夠用的問(wèn)題,在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]”
說(shuō)的就是要注意這個(gè)問(wèn)題,一想到這里,部分兄弟可能會(huì)用ulimit -n 作出調(diào)整,但是這個(gè)調(diào)整實(shí)際是不對(duì)的,換個(gè)終端后,這個(gè)值又會(huì)回到原始值,所以最好用sysctl或者修改/etc/sysctl.conf文件,同時(shí)還要在配置文件中把open_files_limit這個(gè)參數(shù)增大,對(duì)于4G內(nèi)存服務(wù)器,相信現(xiàn)在購(gòu)買的服務(wù)器都差不多用4G的了,那這個(gè)這個(gè)open_files_limit至少要增大到4096,如果沒(méi)有什么特殊情況,設(shè)置成8192就可以了。

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

相關(guān)文章

  • MySQL計(jì)算兩個(gè)日期相差的天數(shù)、月數(shù)、年數(shù)

    MySQL計(jì)算兩個(gè)日期相差的天數(shù)、月數(shù)、年數(shù)

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

    MySQL中Distinct和Group By語(yǔ)句的基本使用教程

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

    mysql增量備份與恢復(fù)使用詳解

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

    MySQL可重復(fù)讀級(jí)別能夠解決幻讀嗎

    這篇文章主要給大家介紹了關(guān)于MySQL可重復(fù)讀級(jí)別能否解決幻讀的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • mysql source 命令導(dǎo)入大的sql文件的方法

    mysql source 命令導(dǎo)入大的sql文件的方法

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

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

    今天正好看到一篇有關(guān)my.cnf優(yōu)化的總結(jié),雖然還沒(méi)經(jīng)過(guò)我自己的實(shí)踐檢驗(yàn),但從文章內(nèi)容來(lái)說(shuō)已經(jīng)寫(xiě)的很詳細(xì)了(當(dāng)然,事實(shí)上下面這篇文章很多地方只是翻譯了my.cnf原始配置文件的說(shuō)明,呵呵),所以特地轉(zhuǎn)載收藏一下
    2015-08-08
  • MySQL8.0.26的安裝與簡(jiǎn)化教程(全網(wǎng)最全)

    MySQL8.0.26的安裝與簡(jiǎn)化教程(全網(wǎng)最全)

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

    Mysql免安裝版設(shè)置密碼教程詳解

    這篇文章主要介紹了Mysql免安裝版設(shè)置密碼教程詳解,需要的朋友可以參考下
    2017-05-05
  • mysql中g(shù)rant?all?privileges?on賦給用戶遠(yuǎn)程權(quán)限方式

    mysql中g(shù)rant?all?privileges?on賦給用戶遠(yuǎn)程權(quán)限方式

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

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

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

最新評(píng)論