国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL配置文件my.cnf中文詳解附mysql性能優化方法分享

2024-07-24 13:02:45
字體:
來源:轉載
供稿:網友
下面先說我的服務器的硬件以及論壇情況,
CPU: 2顆四核Intel Xeon 2.00GHz
內存: 4GB DDR
硬盤: SCSI 146GB
論壇:在線會員 一般在 5000 人左右 – 最高記錄是 13264.
下面,我們根據以上硬件配置結合一份已經做過一次優化的my.cnf進行分析說明:有些參數可能還得根據論壇的變化情況以及程序員的程序進行再調整。
[mysqld]
port = 3306
serverid = 1
socket = /tmp/mysql.sock
skip-locking # 避免MySQL的外部鎖定,減少出錯幾率增強穩定性。

 skip-name-resolve


skip-networking
開啟該選項可以徹底關閉MySQL的TCP/IP連接方式,如果WEB服務器是以遠程連接的方式訪問MySQL數據庫服務器則不要開啟該選項!否則將無法正常連接!
long_query_time = 10
log-slow-queries =
log-queries-not-using-indexes
開啟慢查詢日志( slow query log )
慢查詢日志對于跟蹤有問題的查詢非常有用。它記錄所有查過long_query_time的查詢,如果需要,還可以記錄不使用索引的記錄。下面是一個慢查詢日志的例子:
開啟慢查詢日志,需要設置參數log_slow_queries、long_query_times、log-queries-not-using-indexes。
log_slow_queries指定日志文件,如果不提供文件名,MySQL將自己產生缺省文件名。long_query_times指定慢查詢的閾值,缺省是10秒。log-queries-not-using-indexes是4.1.0以后引入的參數,它指示記錄不使用索引的查詢。設置 long_query_time=10
外附上使用show status命令查看mysql狀態相關的值及其含義:
使用show status命令
含義如下:
aborted_clients 客戶端非法中斷連接次數
aborted_connects 連接mysql失敗次數
com_xxx xxx命令執行次數,有很多條
connections 連接mysql的數量
Created_tmp_disk_tables 在磁盤上創建的臨時表
Created_tmp_tables 在內存里創建的臨時表
Created_tmp_files 臨時文件數
Key_read_requests The number of requests to read a key block from the cache
Key_reads The number of physical reads of a key block from disk
Max_used_connections 同時使用的連接數
Open_tables 開放的表
Open_files 開放的文件
Opened_tables 打開的表
Questions 提交到server的查詢數
Sort_merge_passes 如果這個值很大,應該增加my.cnf中的sort_buffer值
Uptime 服務器已經工作的秒數
提升性能的建議:
1.如果opened_tables太大,應該把my.cnf中的table_cache變大

2.如果Key_reads太大,則應該把my.cnf中key_buffer_size變大.可以用Key_reads/Key_read_requests計算出cache失敗率

3.如果Handler_read_rnd太大,則你寫的SQL語句里很多查詢都是要掃描整個表,而沒有發揮索引的鍵的作用

4.如果Threads_created太大,就要增加my.cnf中thread_cache_size的值.可以用Threads_created/Connections計算cache命中率

5.如果Created_tmp_disk_tables太大,就要增加my.cnf中tmp_table_size的值,用基于內存的臨時表代替基于磁盤的

===================================================================
存儲引擎是什么?MySQL中的數據用各種不同的技術存儲在文件(或者內 正確的編譯方法固然重要,但它只是提高MySQL服務器性能工作的一部分。MySQL服務器的許多參數會影響服務器的性能表現,而且我們可以把這些參數保存到配置文件,使得每次MySQL服務器啟動時這些參數都自動發揮作用。這個配置文件就是my.cnf。
MySQL服務器提供了my.cnf文件的幾個示例,它們可以在/usr/local/mysql/share/mysql/目錄下找到,名字分別為 my-small.cnf、my-medium.cnf、my-large.cnf以及my-huge.cnf。文件名字中關于規模的說明描述了該配置文件適用的系統類型。例如,如果運行MySQL服務器的系統內存不多,而且MySQL只是偶爾使用,那么使用my-small.cnf配置文件最為理想,這個配置文件告訴mysqld daemon使用最少的系統資源。反之,如果MySQL服務器用于支持一個大規模的在線商場,系統擁有2G的內存,那么使用mysql-huge.cnf 最為合適。
要使用上述示例配置文件,我們應該先復制一個最適合要求的配置文件,并把它命名為my.cnf。這個復制得到的配置文件可以按照如下三種方式使用:
全局:把這個my.cnf文件復制到服務器的/etc目錄,此時文件中所定義的參數將全局有效,即對該服務器上運行的所有MySQL數據庫服務器都有效。
局部:把這個my.cnf文件復制到[MYSQL-INSTALL-DIR]/var/將使該文件只對指定的服務器有效,其中[MYSQL-INSTALL-DIR]表示安裝MySQL的目錄。
用戶:最后,我們還可以把該文件的作用范圍局限到指定的用戶,這只需把my.cnf文件復制到用戶的根目錄即可。
那么,如何設置my.cnf文件中的參數呢?或者進一步說,哪些參數是我們可以設置的呢?所有這些參數都對MySQL服務器有著全局性的影響,但同時每一個參數都和MySQL的特定部分關系較為密切。例如,max_connections參數屬于mysqld一類。那么,如何才能得知這一點呢?這只需執行如下命令:

% >/usr/local/mysql/libexec/mysqld –help
該命令將顯示出和mysqld有關的各種選項和參數。要尋找這些參數非常方便,因為這些參數都在“Possible variables for option –set-variable (-O) are”這行內容的后面。找到這些參數之后,我們就可以在my.cnf文件中按照如下方式設置所有這些參數:

set-variable = max_connections=100

這行代碼的效果是:同時連接MySQL服務器的最大連接數量限制為100。不要忘了在my.cnf文件[mysqld]小節加上一個set-variable指令,具體請參見配置文件中的示例。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 隆回县| 石阡县| 红河县| 丰都县| 偏关县| 宁都县| 甘南县| 类乌齐县| 高要市| 广平县| 抚松县| 偃师市| 抚顺县| 沈丘县| 确山县| 巴里| 青海省| 保亭| 汉阴县| 科尔| 凤阳县| 佛坪县| 临沂市| 托克逊县| 北碚区| 久治县| 谷城县| 北京市| 靖江市| 丰顺县| 巨野县| 威远县| 永年县| 荃湾区| 射洪县| 台中市| 温宿县| 页游| 通化县| 饶阳县| 苏州市|