Linux下的MySQL性能調優-讓你的MySQL運行的更快

Linux下的MySQL性能調優-讓你的MySQL運行的更快

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 02能夠提升性能

# 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性能調優僅可提供一個快速的平臺,最終程序性能還須要在查詢語句,表結構上下功夫的,每每一個極耗資源的查詢斷送掉前面全部的性能調整......

相關文章
相關標籤/搜索