052010.09mysql
做者:zxing 發佈:2010-09-05 01:27 字符數:414 分類:Linux, 數據庫 閱讀: 604 次 1條評論 linux
數據庫在WEB系統中充當了極其重要的角色,它的性能直接關係到整個服務器的性能,此文並不是徹底我本身的創做但也包含了我本身的一些體會,在這裏權做記錄下來留給本身之後繼續研究也分享給更多的朋友。程序員
MySQL配置文件爲/etc/mysql/my.cnf 而其中「[mysqld]」配置影響着你的數據庫性能,其餘段落並非很重要,因此這裏僅列出了「[mysqld]」配置段的信息。sql
INI數據庫
1windows 2緩存 3服務器 4socket 5性能 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
user = mysql socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp # 默認存儲引擎 default_table_type = InnoDB # 避免MySQL的外部鎖定 skip-external-locking # 禁止DNS解析 這個選項將不容許使用 localhost 進行用戶驗證而須要使用 127.0.0.1 skip-name-resolve # 修復選項 myisam-recover = BACKUP # 日誌選項 expire_logs_days = 10 max_binlog_size = 100M # 錯誤日誌 log_error = /var/log/mysql/error.log # 查詢排序緩衝區 獨佔 sort_buffer_size = 6M # 讀查詢操做緩衝區 獨佔 read_buffer_size = 4M # 聯合查詢操做緩衝區 獨佔 join_buffer_size = 8M # 整體緩存 thread_stack = 256K table_cache = 128k myisam_sort_buffer_size = 64M thread_cache_size = 64 query_cache_limit = 32M query_cache_size = 64M # 最長鏈接時間 wait_timeout = 30 # 操做線程 thread_concurrency = 8 # MyISAM 索引緩衝區 key_buffer_size = 256M
# Innodb # Innodb最重要的參數 緩存innodb表的索引,數據,插入數據時的緩衝 innodb_buffer_pool_size=1024M # 用來存放Innodb的內部目錄 若是表比較多 能夠適當調大 innodb_additional_mem_pool_size=4M innodb_data_file_path = ibdata_1:384M;ibdata_2:384M;ibdata_3:384M:autoextend # 文件讀寫IO,這個參數只在Windows上起做用,在LINUX上只會等於4 innodb_file_io_threads = 4 innodb_thread_concurrency = 16 # 事務的提交方式 默認爲 1, 0或2能夠提升性能 # 0:每秒一次寫入日誌文件,並刷新到到磁盤,事務提交時不進行操做。崩潰時丟失最後一秒的事務。 # 1:每次提交都寫入日誌文件,並刷新到磁盤。不丟任何一個事務。 # 2:提交後寫入文件,但不刷新到磁盤,日誌刷新值爲2時每秒一次刷新到磁盤。崩潰時會丟失事務。 innodb_flush_log_at_trx_commit=2 # 日誌的大小 innodb_log_file_size=32M # 事務緩衝 無需太大MySQL會每秒將內存中的信息寫入磁盤中 innodb_log_buffer_size=8M # 指定日誌組個數 innodb_log_files_in_group = 3 # 禁止系統緩存 直接寫入磁盤 windows下無需設置 innodb_flush_method=O_DIRECT # 控制Innodb的髒頁在緩衝中的最高百分比 innodb_max_dirty_pages_pct = 90 # 鎖定時間長度 innodb_lock_wait_timeout = 30 |
提醒DBA們MySQL並不是一個文件便可優化的,我給出的配置僅僅適合我本身的服務器:4G內存/單志強CPU!另外其餘軟件也會影響服務器整體性能,因此須要你不斷查看服務器的各類狀態變量,根據實際狀況不斷調整出最適合你服務器的配置。
最後,還須要提醒程序員,MySQL性能調優僅可提供一個快速的平臺,最終程序性能還須要在查詢語句,表結構上下功夫的,每每一個極耗資源的查詢斷送掉前面全部的性能調整......