亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

簡單實現(xiàn)MySQL服務器的優(yōu)化配置方法

 更新時間:2011年03月06日 15:15:51   作者:  
我們今天主要向大家描述的是MySQL服務器的優(yōu)化配置的時機操作步驟,以及在MySQL服務器的優(yōu)化配置的的過程中值得我們主義的事項的介紹。
公司網(wǎng)站訪問量越來越大,MySQL自然成為瓶頸,因此最近我一直在研究 MySQL 的優(yōu)化,第一步自然想到的是 MySQL 系統(tǒng)參數(shù)的優(yōu)化,作為一個訪問量很大的網(wǎng)站(日20萬人次以上)的數(shù)據(jù)庫系統(tǒng),不可能指望 MySQL 默認的系統(tǒng)參數(shù)能夠讓 MySQL運行得非常順暢。以下的文章主要介紹的是對MySQL服務器的優(yōu)化配置的時機操作步驟,同時本文也介紹了MySQL服務器的優(yōu)化配置的實際應用代碼,如果你對其相關的實際應用感興趣的話,你就可以點擊以下的文章對其進行了解。
你能用這個命令得到MySQL服務器缺省緩沖區(qū)大?。?

shell> MySQL(和PHP搭配之最佳組合)d --help
這個命令生成一張所有MySQL(和PHP搭配之最佳組合)d選項和可配置變量的表。輸出包括缺省值并且看上去象這樣一些東西:
Possible variables for option --set-variable (-O) are:
復制代碼 代碼如下:

back_log current value: 5
connect_timeout current value: 5
delayed_insert_timeout current value: 300
delayed_insert_limit current value: 100
delayed_queue_size current value: 1000
flush_time current value: 0
interactive_timeout current value: 28800
join_buffer_size current value: 131072
key_buffer_size current value: 1048540
lower_case_table_names current value: 0
long_query_time current value: 10
max_allowed_packet current value: 1048576
max_connections current value: 100
max_connect_errors current value: 10
max_delayed_threads current value: 20
max_heap_table_size current value: 16777216
max_join_size current value: 4294967295
max_sort_length current value: 1024
max_tmp_tables current value: 32
max_write_lock_count current value: 4294967295
net_buffer_length current value: 16384
query_buffer_size current value: 0
record_buffer current value: 131072
sort_buffer current value: 2097116
table_cache current value: 64
thread_concurrency current value: 10
tmp_table_size current value: 1048576
thread_stack current value: 131072
wait_timeout current value: 28800

如果有一個MySQL服務器正在運行,通過執(zhí)行這個命令,你可以看到它實際上使用的變量的值:
復制代碼 代碼如下:

shell> MySQL(和PHP搭配之最佳組合)admin variables

每個選項在下面描述。對于緩沖區(qū)大小、長度和棧大小的值以字節(jié)給出,你能用于個后綴“K”或“M” 指出以K字節(jié)或兆字節(jié)顯示值。例如,16M指出16兆字節(jié)。后綴字母的大小寫沒有關系;16M和16m是相同的。
你也可以用命令SHOW STATUS自一個運行的服務器看見一些統(tǒng)計。見7.21 SHOW語法(得到表、列的信息)。
back_log
要求MySQL(和PHP搭配之最佳組合)能有的連接數(shù)量。當主要MySQL(和PHP搭配之最佳組合)線程在一個很短時間內(nèi)得到非常多的連接請求,這就起作用,然后主線程花些時間(盡管很短)檢查連接并且啟動一個新線程。back_log值指出在MySQL(和PHP搭配之最佳組合)暫時停止回答新請求之前的短時間內(nèi)多少個請求可以被存在堆棧中。只有如果期望在一個短時間內(nèi)有很多連接,你需要增加它,換句話說,這值對到來的TCP/IP連接的偵聽隊列的大小。你的操作系統(tǒng)在這個隊列大小上有它自己的限制。 Unix listen(2)系統(tǒng)調(diào)用的手冊頁應該有更多的細節(jié)。檢查你的OS文檔找出這個變量的最大值。試圖設定back_log高于你的操作系統(tǒng)的限制將是無效的。

connect_timeout

MySQL(和PHP搭配之最佳組合)d服務器在用Bad handshake(糟糕的握手)應答前正在等待一個連接報文的秒數(shù)。

delayed_insert_timeout

一個INSERT DELAYED線程應該在終止之前等待INSERT語句的時間。

delayed_insert_limit

在插入delayed_insert_limit行后,INSERT DELAYED處理器將檢查是否有任何SELECT語句未執(zhí)行。如果這樣,在繼續(xù)前執(zhí)行允許這些語句。

delayed_queue_size

應該為處理INSERT DELAYED分配多大一個隊列(以行數(shù))。如果排隊滿了,任何進行INSERT DELAYED的客戶將等待直到隊列又有空間了。

flush_time

如果這被設置為非零值,那么每flush_time秒所有表將被關閉(以釋放資源和sync到磁盤)。

interactive_timeout

MySQL服務器在關上它前在一個交互連接上等待行動的秒數(shù)。一個交互的客戶被定義為對MySQL(和PHP搭配之最佳組合)_real_connect()使用CLIENT_INTERACTIVE選項的客戶。也可見wait_timeout。

join_buffer_size

用于全部聯(lián)結(jié)(join)的緩沖區(qū)大小(不是用索引的聯(lián)結(jié))。緩沖區(qū)對2個表間的每個全部聯(lián)結(jié)分配一次緩沖區(qū),當增加索引不可能時,增加該值可得到一個更快的全部聯(lián)結(jié)。(通常得到快速聯(lián)結(jié)的最佳方法是增加索引。)

key_buffer_size

索引塊是緩沖的并且被所有的線程共享。key_buffer_size是用于索引塊的緩沖區(qū)大小,增加它可得到更好處理的索引(對所有讀和多重寫),到你能負擔得起那樣多。如果你使它太大,系統(tǒng)將開始換頁并且真的變慢了。記住既然MySQL(和PHP搭配之最佳組合)不緩存讀取的數(shù)據(jù),你將必須為OS文件系統(tǒng)緩存留下一些空間。為了在寫入多個行時得到更多的速度,使用LOCK TABLES。見7.24LOCK TABLES/UNLOCK TABLES語法。

long_query_time

如果一個查詢所用時間超過它(以秒計),Slow_queries記數(shù)器將被增加。

max_allowed_packet

一個包的最大尺寸。消息緩沖區(qū)被初始化為net_buffer_length字節(jié),但是可在需要時增加到max_allowed_packet個字節(jié)。缺省地,該值太小必能捕捉大的(可能錯誤)包。如果你正在使用大的BLOB列,你必須增加該值。它應該象你想要使用的最大BLOB的那么大。

max_connections

允許的同時客戶的數(shù)量。增加該值增加MySQL(和PHP搭配之最佳組合)d要求的文件描述符的數(shù)量。見下面對文件描述符限制的注釋。見18.2.4 Too many connections錯誤。

max_connect_errors

如果有多于該數(shù)量的從一臺主機中斷的連接,這臺主機阻止進一步的連接。你可用FLUSH HOSTS命令疏通一臺主機。

max_delayed_threads

不要啟動多于的這個數(shù)字的線程來處理INSERT DELAYED語句。如果你試圖在所有INSERT DELAYED線程在用后向一張新表插入數(shù)據(jù),行將被插入,就像DELAYED屬性沒被指定那樣。

max_join_size

可能將要讀入多于max_join_size個記錄的聯(lián)結(jié)將返回一個錯誤。如果你的用戶想要執(zhí)行沒有一個WHERE子句、花很長時間并且返回百萬行的聯(lián)結(jié),設置它。

max_sort_length

在排序BLOB或TEXT值時使用的字節(jié)數(shù)(每個值僅頭max_sort_length個字節(jié)被使用;其余的被忽略)。

max_tmp_tables

(該選擇目前還不做任何事情)。一個客戶能同時保持打開的臨時表的最大數(shù)量。

net_buffer_length

通信緩沖區(qū)在查詢之間被重置到該大小。通常這不應該被改變,但是如果你有很少的內(nèi)存,你能將它設置為查詢期望的大小。(即,客戶發(fā)出的SQL語句期望的長度。如果語句超過這個長度,緩沖區(qū)自動地被擴大,直到max_allowed_packet個字節(jié)。)

record_buffer

每個進行一個順序掃描的線程為其掃描的每張表分配這個大小的一個緩沖區(qū)。如果你做很多順序掃描,你可能想要增加該值。

sort_buffer

每個需要進行排序的線程分配該大小的一個緩沖區(qū)。增加這值加速ORDER BY或GROUP BY操作。見18.5 MySQL(和PHP搭配之最佳組合)在哪兒存儲臨時文件。

table_cache

為所有線程打開表的數(shù)量。增加該值能增加MySQL(和PHP搭配之最佳組合)d要求的文件描述符的數(shù)量。MySQL(和PHP搭配之最佳組合)對每個唯一打開的表需要2個文件描述符,見下面對文件描述符限制的注釋。對于表緩存如何工作的信息,見10.2.4 MySQL(和PHP搭配之最佳組合)怎樣打開和關閉表。

tmp_table_size

如果一張臨時表超出該大小,MySQL(和PHP搭配之最佳組合)產(chǎn)生一個The table tbl_name is full形式的錯誤,如果你做很多高級GROUP BY查詢,增加tmp_table_size值。

thread_stack

每個線程的棧大小。由crash-me測試檢測到的許多限制依賴于該值。缺省隊一般的操作是足夠大了。見10.8 使用你自己的基準。

wait_timeout

MySQL服務器在關閉它之前在一個連接上等待行動的秒數(shù)。也可見interactive_timeout。

MySQL(和PHP搭配之最佳組合)使用是很具伸縮性的算法,因此你通常能用很少的內(nèi)存運行或給MySQL(和PHP搭配之最佳組合)更多的被存以得到更好的性能。

如果你有很多內(nèi)存和很多表并且有一個中等數(shù)量的客戶,想要最大的性能,你應該一些象這樣的東西:
復制代碼 代碼如下:

shell> safe_MySQL(和PHP搭配之最佳組合)d -O key_buffer=16M -O table_cache=128 \ -O sort_buffer=4M -O record_buffer=1M &

如果你有較少的內(nèi)存和大量的連接,使用這樣一些東西:
復制代碼 代碼如下:

shell> safe_MySQL(和PHP搭配之最佳組合)d -O key_buffer=512k -O sort_buffer=100k \ -O record_buffer=100k &

或甚至:
復制代碼 代碼如下:

shell> safe_MySQL(和PHP搭配之最佳組合)d -O key_buffer=512k -O sort_buffer=16k \ -O table_cache=32 -O record_buffer=8k -O net_buffer=1K &

如果有很多連接,“交換問題”可能發(fā)生,除非MySQL(和PHP搭配之最佳組合)d已經(jīng)被配置每個連接使用很少的內(nèi)存。當然如果你對所有連接有足夠的內(nèi)存,MySQL(和PHP搭配之最佳組合)d執(zhí)行得更好。
注意,如果你改變MySQL(和PHP搭配之最佳組合)d的一個選項,它實際上只對MySQL服務器的那個例子保持。
為了明白一個參數(shù)變化的效果,這樣做:
復制代碼 代碼如下:

shell> MySQL(和PHP搭配之最佳組合)d -O key_buffer=32m --help

保證--help選項是最后一個;否則,命令行上在它之后列出的任何選項的效果將不在反映在輸出中。

相關文章

  • MySQL ORDER BY 的實現(xiàn)分析

    MySQL ORDER BY 的實現(xiàn)分析

    總的來說,在 MySQL 中的ORDER BY有兩種排序?qū)崿F(xiàn)方式,一種是利用有序索引獲取有序數(shù)據(jù),另一種則是通過相應的排序算法,將取得的數(shù)據(jù)在內(nèi)存中進行排序
    2012-07-07
  • MySQL導出數(shù)據(jù)遇到secure-file-priv問題的解決方法

    MySQL導出數(shù)據(jù)遇到secure-file-priv問題的解決方法

    這篇文章主要為大家詳細介紹了MySQL導出數(shù)據(jù)遇到secure-file-priv問題的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • mysql事務和隔離級別底層原理淺析

    mysql事務和隔離級別底層原理淺析

    大家好,本篇文章主要講的是mysql事務和隔離級別底層原理淺析,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2021-12-12
  • Centos7 下Mysql5.7.19安裝教程詳解

    Centos7 下Mysql5.7.19安裝教程詳解

    這篇文章主要介紹了Centos7 下Mysql5.7.19安裝教程詳解,小編認為非常不錯,特此分享到腳本之家平臺,需要的朋友參考下吧
    2017-09-09
  • mysql 8.0.21 安裝配置方法圖文教程

    mysql 8.0.21 安裝配置方法圖文教程

    這篇文章主要為大家詳細介紹了mysql 8.0.21 安裝配置方法圖文教程,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • mysql實現(xiàn)隨機查詢經(jīng)驗談

    mysql實現(xiàn)隨機查詢經(jīng)驗談

    官方文檔中進行說明:Order By和RAND()連用,會多次掃描表,導致速度變慢,下面看下一些測試詳解
    2013-10-10
  • mysql配置模板(my-*.cnf)參數(shù)詳細說明

    mysql配置模板(my-*.cnf)參數(shù)詳細說明

    這篇文章主要介紹了mysql配置模板就是mysql的配置文件參數(shù)說明,需要的朋友可以參考下
    2015-01-01
  • Windows下mysql 8.0.12 安裝詳細教程

    Windows下mysql 8.0.12 安裝詳細教程

    這篇文章主要為大家詳細介紹了Windows下mysql 8.0.12 安裝詳細教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • MySQL中查詢、刪除重復記錄的方法大全

    MySQL中查詢、刪除重復記錄的方法大全

    mysql中刪除重復記錄的方法有很多種,下面這篇文章主要給大家總結(jié)了在MySQL中查詢、刪除重復記錄的方法大全,文中給出了詳細的示例代碼供大家參考學習,需要的朋友下面來一起看看吧。
    2017-06-06
  • SQL中l(wèi)imit函數(shù)語法與用法(MYSQL獲取限制某行數(shù)據(jù))

    SQL中l(wèi)imit函數(shù)語法與用法(MYSQL獲取限制某行數(shù)據(jù))

    limit是MySql的內(nèi)置函數(shù),一般用于查詢表中記錄的條數(shù),作用是用于限制查詢條數(shù),下面這篇文章主要給大家介紹了關于SQL中l(wèi)imit函數(shù)語法與用法的相關資料,詳細講了MYSQL獲取限制某行數(shù)據(jù)的方法,需要的朋友可以參考下
    2022-08-08

最新評論