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

MySQL數(shù)據(jù)庫(kù)優(yōu)化經(jīng)驗(yàn)詳談(服務(wù)器普通配置)第1/3頁(yè)

 更新時(shí)間:2011年03月06日 17:52:32   作者:  
同時(shí)在線訪問量繼續(xù)增大 對(duì)于1G內(nèi)存的服務(wù)器明顯感覺到吃力嚴(yán)重時(shí)甚至每天都會(huì)死機(jī) 或者時(shí)不時(shí)的服務(wù)器卡一下 這個(gè)問題曾經(jīng)困擾了我半個(gè)多月MySQL使用是很具伸縮性的算法,因此你通常能用很少的內(nèi)存運(yùn)行或給MySQL更多的被存以得到更好的性能。

安裝好mysql后,配制文件應(yīng)該在/usr/local/mysql/share/mysql目錄中,配制文件有幾個(gè),有my- huge.cnf my-medium.cnf my-large.cnf my-small.cnf,不同的流量的網(wǎng)站和不同配制的服務(wù)器環(huán)境,當(dāng)然需要有不同的配制文件了。

一般的情況下,my-medium.cnf這個(gè)配制文件就能滿足我們的大多需要;一般我們會(huì)把配置文件拷貝到/etc/my.cnf 只需要修改這個(gè)配置文件就可以了,使用mysqladmin variables extended-status –u root –p 可以看到目前的參數(shù),有3個(gè)配置參數(shù)是最重要的,即:


key_buffer_size
query_cache_size
table_cache

key_buffer_size只對(duì)MyISAM表起作用。

key_buffer_size指定索引緩沖區(qū)的大小,它決定索引處理的速度,尤其是索引讀的速度。一般我們?cè)O(shè)為16M,實(shí)際上稍微大一點(diǎn)的站點(diǎn) 這個(gè)數(shù)字是遠(yuǎn)遠(yuǎn)不夠的,通過檢查狀態(tài)值Key_read_requests和Key_reads,可以知道key_buffer_size設(shè)置是否合理。比例key_reads / key_read_requests應(yīng)該盡可能的低,至少是1:100,1:1000更好(上述狀態(tài)值可以使用SHOW STATUS LIKE ‘key_read%'獲得)。 或者如果你裝了phpmyadmin 可以通過服務(wù)器運(yùn)行狀態(tài)看到,筆者推薦用phpmyadmin管理mysql,以下的狀態(tài)值都是本人通過phpmyadmin獲得的實(shí)例分析:

這個(gè)服務(wù)器已經(jīng)運(yùn)行了20天


key_buffer_size – 128M
key_read_requests – 650759289
key_reads - 79112

比例接近1:8000 健康狀況非常好

另外一個(gè)估計(jì)key_buffer_size的辦法:把你網(wǎng)站數(shù)據(jù)庫(kù)的每個(gè)表的索引所占空間大小加起來(lái)看看以此服務(wù)器為例:比較大的幾個(gè)表索引加起來(lái)大概125M 這個(gè)數(shù)字會(huì)隨著表變大而變大。

從4.0.1開始,MySQL提供了查詢緩沖機(jī)制。使用查詢緩沖,MySQL將SELECT語(yǔ)句和查詢結(jié)果存放在緩沖區(qū)中,今后對(duì)于同樣的SELECT語(yǔ)句(區(qū)分大小寫),將直接從緩沖區(qū)中讀取結(jié)果。根據(jù)MySQL用戶手冊(cè),使用查詢緩沖最多可以達(dá)到238%的效率。

通過調(diào)節(jié)以下幾個(gè)參數(shù)可以知道query_cache_size設(shè)置得是否合理


Qcache inserts
Qcache hits
Qcache lowmem prunes
Qcache free blocks
Qcache total blocks

Qcache_lowmem_prunes的值非常大,則表明經(jīng)常出現(xiàn)緩沖不夠的情況,同時(shí)Qcache_hits的值非常大,則表明查詢緩沖使用非常頻繁,此時(shí)需要增加緩沖大小Qcache_hits的值不大,則表明你的查詢重復(fù)率很低,這種情況下使用查詢緩沖反而會(huì)影響效率,那么可以考慮不用查詢緩沖。此外,在SELECT語(yǔ)句中加入SQL_NO_CACHE可以明確表示不使用查詢緩沖。

Qcache_free_blocks,如果該值非常大,則表明緩沖區(qū)中碎片很多query_cache_type指定是否使用查詢緩沖

我設(shè)置:


query_cache_size = 32M
query_cache_type= 1

得到如下狀態(tài)值:


Qcache queries in cache 12737 表明目前緩存的條數(shù)
Qcache inserts 20649006
Qcache hits 79060095  看來(lái)重復(fù)查詢率還挺高的
Qcache lowmem prunes 617913 有這么多次出現(xiàn)緩存過低的情況
Qcache not cached 189896   
Qcache free memory 18573912  目前剩余緩存空間
Qcache free blocks 5328 這個(gè)數(shù)字似乎有點(diǎn)大 碎片不少
Qcache total blocks 30953

如果內(nèi)存允許32M應(yīng)該要往上加點(diǎn)

table_cache指定表高速緩存的大小。每當(dāng)MySQL訪問一個(gè)表時(shí),如果在表緩沖區(qū)中還有空間,該表就被打開并放入其中,這樣可以更快地訪問表內(nèi)容。通過檢查峰值時(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)定或者連接失敗。

對(duì)于有1G內(nèi)存的機(jī)器,推薦值是128-256。

筆者設(shè)置table_cache = 256

得到以下狀態(tài):


Open tables 256
Opened tables 9046

雖然open_tables已經(jīng)等于table_cache,但是相對(duì)于服務(wù)器運(yùn)行時(shí)間來(lái)說,已經(jīng)運(yùn)行了20天,opened_tables的值也非常低。因此,增加table_cache的值應(yīng)該用處不大。如果運(yùn)行了6個(gè)小時(shí)就出現(xiàn)上述值 那就要考慮增大table_cache。

相關(guān)文章

  • 解決Linux下Tomcat向MySQL插入數(shù)據(jù)中文亂碼問題

    解決Linux下Tomcat向MySQL插入數(shù)據(jù)中文亂碼問題

    本文給大家介紹的是如何解決win平臺(tái)下開發(fā)的項(xiàng)目移植到Linux平臺(tái)后,向MySQL插入數(shù)據(jù)時(shí)中文出現(xiàn)亂碼的問題,非常的簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下
    2018-04-04
  • Mysql5.7忘記root密碼及mysql5.7修改root密碼的方法

    Mysql5.7忘記root密碼及mysql5.7修改root密碼的方法

    這篇文章主要介紹了Mysql5.7忘記root密碼及mysql5.7修改root密碼的方法的相關(guān)資料,需要的朋友可以參考下
    2016-01-01
  • MySQL5.7主從配置實(shí)例解析

    MySQL5.7主從配置實(shí)例解析

    這篇文章主要為大家詳細(xì)解析了MySQL5.7主從配置的實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • MySQL創(chuàng)建表時(shí)字符串的默認(rèn)值問題

    MySQL創(chuàng)建表時(shí)字符串的默認(rèn)值問題

    這篇文章主要介紹了MySQL創(chuàng)建表時(shí)字符串的默認(rèn)值問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • mysql 8.0.12 解壓版安裝教程 個(gè)人親測(cè)!

    mysql 8.0.12 解壓版安裝教程 個(gè)人親測(cè)!

    這篇文章主要為大家詳細(xì)介紹了mysql 8.0.12 解壓版安裝教程,步驟簡(jiǎn)單,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • MySQL之導(dǎo)出整個(gè)及單個(gè)表數(shù)據(jù)的操作

    MySQL之導(dǎo)出整個(gè)及單個(gè)表數(shù)據(jù)的操作

    這篇文章主要介紹了MySQL之導(dǎo)出整個(gè)及單個(gè)表數(shù)據(jù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2020-11-11
  • MYSQL administrator 使用

    MYSQL administrator 使用

    Administrator 也許你認(rèn)為可以不需要這個(gè)東西,但我還是要建議你下載并使用MySQL Administrator,它提供圖形界面以幫助你管理MySQL數(shù)據(jù)庫(kù),Windows用戶可以通過命令提示行運(yùn)行
    2008-06-06
  • 分析MySQL拋出異常的幾種常見解決方式

    分析MySQL拋出異常的幾種常見解決方式

    在本文中,總結(jié)了開發(fā)過程中最為常見的幾種 MySQL 拋出的異常以及如何解決,包括高版本驅(qū)動(dòng)的問題、時(shí)區(qū)配置問題、SSL 連接問題等。于我個(gè)人而言,這一篇足以解決目前項(xiàng)目中所有遇到的MySQL問題。同時(shí),也希望本文能對(duì) MySQL 數(shù)據(jù)庫(kù)初學(xué)者有一定的引導(dǎo)入門作用。
    2021-05-05
  • Navicat Premium遠(yuǎn)程連接MySQL數(shù)據(jù)庫(kù)的方法

    Navicat Premium遠(yuǎn)程連接MySQL數(shù)據(jù)庫(kù)的方法

    這篇文章主要介紹了Navicat Premium遠(yuǎn)程連接MySQL數(shù)據(jù)庫(kù)的方法,本文分步驟通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • MySQL UPDATE更新語(yǔ)句精解

    MySQL UPDATE更新語(yǔ)句精解

    mysql update命令的一些詳細(xì)用法分析,真是不錯(cuò)的好東西,建議大家看看。
    2009-03-03

最新評(píng)論